python
ターミナルから引数なしで" " を実行すると、 Python 対話型シェルが起動します。
ターミナルから「 」を実行しても、cat | python
対話モードは起動しません。何らかの理由で、入力を取得しなくても、パイプに接続されていることが検出されました。
C や C++ や Qt で同様の検出を行うにはどうすればよいでしょうか?
ベストアンサー1
使用isatty
:
#include <stdio.h>
#include <io.h>
...
if (isatty(fileno(stdin)))
printf( "stdin is a terminal\n" );
else
printf( "stdin is a file or a pipe\n");
(Windows では、アンダースコアが先頭に付きます: _isatty
, _fileno
)