有了这段代码,我在 Stack 上找到了:
...
char buffer[256]
while((count=read(0, buffer, 256)) > 1)
{
if(buffer[count] = '\n') break;
}
buffer[n-1] ='\0';
我可以从标准输入中读取,但我有 2 个问题:
- 为什么
'='
在 if() 中使用而不是'=='
? - 如果我
CTRL-C
在写完东西后按,我怎么能保留我写的东西?
谢谢
为什么在 if() 中使用 '=' 而不是 '=='?
在 if 语句中,这可能是一个错字。因为
buffer[count] = '\n'
将始终为 '\n',并且在 C 中为“true”(非空)。
如果我在写完东西后按 CTRL-C,我怎样才能保留我写的东西?
在终端中按 CTRL-C 将向正在运行的进程发送一个 SIGINT。通常,您的应用程序将立即退出,无论它在做什么。
你可以用几行代码来捕捉 SIGINT 事件,但是“保留你写的东西”有什么意义呢?