【发布时间】:2011-12-18 06:03:14
【问题描述】:
大家好,我在设计一个Key-Value服务器,在写客户端的时候,发现一个很奇怪的东西,看简化代码:
while(1)
{
printf("->:");
read(STDIN_FILENO, buf, sizeof(buf));
write(client_sock, buf, sizeof(buf));
int m = read(client_sock, buf, sizeof(buf));
buf[m] = '\0';
printf("%s", buf);
}
当我运行程序时,它首先要求输入,所以我输入了一些东西,但没有任何反应! (当我使用其他客户端时,服务器运行良好,并且它很好地回显了一些东西)
那我只改了一行代码:
printf("\n->:");
然后它运行良好!为什么?为什么“\n”可以改变输出?我想可能是 read() ,但我无法解释
【问题讨论】: