如何CTRL-C
问题描述:
之前保持输入有了这个代码,我发现这里的堆栈:如何CTRL-C
...
char buffer[256]
while((count=read(0, buffer, 256)) > 1)
{
if(buffer[count] = '\n') break;
}
buffer[n-1] ='\0';
我可以从标准输入读取,但我有2个问题:
- 为什么
'='
用在if()而不是'=='
? - 如果我在写东西后按
CTRL-C
,我该如何保留我写的 ?
由于
答
为什么 '=' 在如果()而不是 '==' 使用?
在if语句中,它可能是一个错字。因为
buffer[count] = '\n'
将始终为'\ n',并在C中它是“真”(非空)。
如果我在写完东西后按下CTRL-C,我该如何保留我写的内容?
在终端中按下CTRL-C会向运行的进程发送SIGINT。通常你的应用程序会立即退出,不管它在做什么。
你可以用some lines of code来捕捉到SIGINT事件,但是“保留你写的东西”有什么意义?
使用'='而不是'=='可能是一个错字。否则就没有意义了。另外,它应该是'if(buffer [count-1] =='\ n')'。 – 2013-03-14 16:18:57
这绝对不是一个错字,读取返回读取计数。而循环运行时读计数大于1。 – 2013-03-14 16:20:17
@Armin:问题是关于'if'中的'=',而不是'while'。 – jxh 2013-03-14 16:58:37