有沒有一種方法可以判斷stderr是否輸出到C/C++程序中的文件或終端?我需要輸出不同的錯誤消息,這取決於程序是否被調用爲:如何判斷stderr是否將輸出指向文件?
./program
或類似:
./program 2 >>文件
有沒有一種方法可以判斷stderr是否輸出到C/C++程序中的文件或終端?我需要輸出不同的錯誤消息,這取決於程序是否被調用爲:如何判斷stderr是否將輸出指向文件?
./program
或類似:
./program 2 >>文件
嘗試在文件描述符使用isatty()
:
的
isatty()
函數確定 文件描述符fd
指 有效的終端類型的裝置。函數
fileno()
檢查參數流 ,並返回其整數描述符 。
注意stderr
總是在文件描述符2,所以你並不真正需要fileno()
在這種情況下,準確。
感謝您的快速回復。我不知道該如何谷歌找到這個答案,但Stackoverflow FTW。 – stonea 2009-05-18 21:44:43