【发布时间】:2020-03-21 14:40:15
【问题描述】:
我在主阅读循环中获得用户输入,如果按下 ctrl-c,我想获得自定义输入。
但似乎用户输入与使用write(0, foo, strlen(foo);在标准输入中写入的某些字符串之间存在差异。
这是一个小程序,显示:
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
void ctrlc_handler(int signal)
{
write(0, "abc", 3);
}
int main(void)
{
char buf[5];
signal(SIGINT, ctrlc_handler);
while (1)
{
write(1, "> ", 2);
memset(buf, 0, 5);
read(0, &buf, 4);
printf("Read: %s", buf);
}
return (0);
}
还有一个输出示例:
> Hey
Read: Hey
> ^Cabc
Read:
【问题讨论】: