C または C での端子またはパイプの接続の決定
プログラムを実行するとき、多くの場合、標準入力 (stdin) が入力されているかどうかを確認する必要があります。 ) は端子またはパイプに接続されます。この区別は、プログラムが受け取っている入力の種類を理解し、それに応じて動作を調整するために重要です。
問題分析
観察されたように、「Python」は次のような場合に応じて動作が異なります。ターミナルまたはパイプ経由で呼び出されます。これは、プログラムが端末接続の有無を検出することを示します。
C または C 検出ソリューション
C または C では、関数 isatty を使用して次のことができます。指定されたファイル記述子が端末を参照しているかどうかを判断します。ファイル記述子を引数として受け取ります。通常、stdin の場合は fileno(stdin) です。
コード例
C で isatty を使用する方法の例を次に示します。または C :
#include <stdio.h> #include <io.h> // For _isatty and _fileno on Windows int main() { if (isatty(fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); } return 0; }
Windows では、関数 isatty と fileno の接頭辞が次のようになります。アンダースコアがあるため、コードは次のようになります:
#include <stdio.h> #include <io.h> int main() { if (_isatty(_fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); } return 0; }
以上が標準入力 (stdin) が C または C の端子であるかパイプであるかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。