1

このコードを使用して、スタックでここで見つけました:

...
char buffer[256]

while((count=read(0, buffer, 256)) > 1)
   {
   if(buffer[count] = '\n') break;
   }

   buffer[n-1] ='\0';

標準入力から読み取ることができますが、2 つの質問があります。

  1. '='の代わりに if() で使用されるのはなぜ'=='ですか?
  2. CTRL-C何かを書いた後に押した場合、どうすれば書いた内容を保持できますか?

ありがとう

4

1 に答える 1

1

if() で「==」ではなく「=」が使用されるのはなぜですか?

if ステートメントでは、おそらくタイプミスです。なぜなら

buffer[count] = '\n'

は常に '\n' であり、C では「true」(null 以外) です。

何かを書いた後に CTRL-C を押した場合、書いた内容を保持するにはどうすればよいですか?

ターミナルで CTRL-C を押すと、実行中のプロセスに SIGINT が送信されます。通常、アプリケーションが何をしていても、アプリケーションはすぐに終了します。

いくつかのコード行でSIGINTイベントをキャッチできますが、「書いたものを保持する」という点は何ですか?

于 2013-03-14T16:51:24.460 に答える