標準入力ストリーム (stdin) のファイルの終わり (EOF)
質問:
標準入力にはファイルの終わりマーカーはありますか?そうでない場合、追加できますか?
答え:
Stdin の EOF
stdin には自然には EOF がありません。マーカー。 stdin から読み取る場合 (fread または read を使用するなど)、ループ:
while ((c = read(0, buffer, BUFSIZ)) > 0) { // ... }
は、EOF が明示的にシミュレートされない限り終了しません。
Stdin で EOF をシミュレート
UNIX システムでは、Ctrl D を押して標準入力で EOF をシミュレートします。 Windows では、Ctrl Z を押します。これにより、プログラムは入力ファイルの最後に到達したかのように動作します。
入力のリダイレクト
入力がリダイレクトされるときファイル (例: プログラム < input.txt) からの場合、ファイル自体に EOF が含まれているため、これは問題ではありません。
追加の説明
Stdin なしリダイレクトは無限ファイルとみなすことができます。入力の終了は、Ctrl D または Ctrl Z を使用して EOF をシミュレートすることで手動で通知する必要があります。
以上が標準入力ストリーム (stdin) でファイルの終わり (EOF) をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。