2009-05-18 8 views

答えて

11

ファイルディスクリプタにisatty()を使用してみてください:

ファイルディスクリプタfdが 有効な端末タイプデバイスを参照 場合isatty()機能が決定されます。

ファンクションfileno()は、 引数ストリームを検査し、その 整数デスクリプタを返します。

stderrは常にファイル記述子2にあるため、この場合は実際にはfileno()は必要ありません。

10

ファイル

./program 2 >>:

./program

など:私は、プログラムは次のように呼び出されたかどうかに応じて、出力別のエラーメッセージに必要isatty(3)は、ファイルディスクリプタが端末を参照するか、他のもの(ファイル、パイプなど)を参照するかどうかを指示します。ファイル記述子0はstdinであり、1はstdoutであり、2はstderrである。

if(isatty(2)) 
    // stderr is a terminal 
+0

Windowsでの信頼性はどれくらいですか? – JesperE

+3

これはWindows上には存在しません(Cygwinでコンパイルしない限り、100%の信頼性があります)。 –

+0

それは皮肉でしたか? Cygwinの100%信頼できる部分はありますか? – bk1e

関連する問題