2013-02-07 38 views
5

Tôi muốn biết nếu nó là posible trong linux và C để tìm ra rằng đầu ra chương trình của tôi được chuyển hướng đến một tập tin. Tôi muốn định dạng đầu ra của con người có thể đọc được khi được in trên stdout $ ./myprogram và như csv khi được chuyển hướng đến một tệp $ ./myprogram >> data.csvTìm hiểu rằng đầu ra của chương trình của tôi được chuyển hướng đến một tệp

là nó có thể đọc được không?

+0

Thú vị câu hỏi. Có lẽ với argv/argc từ main()? – Burkhard

Trả lời

10

Bạn có thể sử dụng chức năng isatty cho rằng:

if (isatty(STDOUT_FILENO)) 
{ 
    /* Standard out is an interactive terminal */ 
} 
else 
{ 
    /* Standard out is something else (pipe, file redirect, etc.) */ 
} 
+0

cảm ơn, 'if (isatty (fileno (stdout))) {là một thiết bị đầu cuối} else {là một tệp};' :) – microo8

Các vấn đề liên quan