1

有了这段代码,我在 Stack 上找到了:

...
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”(非空)。

如果我在写完东西后按 CTRL-C,我怎样才能保留我写的东西?

在终端中按 CTRL-C 将向正在运行的进程发送一个 SIGINT。通常,您的应用程序将立即退出,无论它在做什么。

你可以用几行代码来捕捉 SIGINT 事件,但是“保留你写的东西”有什么意义呢?

于 2013-03-14T16:51:24.460 回答