将read语句略读为printf语句

时间:2013-10-05 09:16:17

标签: c

为什么它打印你好然后好运然后再次打招呼才能从套接字sockfd读取? 那么为什么它跳过阅读打印?

int number=read(sockfd,&buff,500);
while(number>0)
{
printf("hello ");
number=read(sockfd,&buff,500);
printf("good luck");
}

2 个答案:

答案 0 :(得分:1)

因为当连接到终端时,stdout是行缓冲的,所以在\n打印内容的末尾添加prinf("hello\n");或使用fflush

while(number>0)
{
    printf("hello ");
    fflush(stdout);
    number=read(sockfd,&buff,500);
    printf("good luck");
    fflush(stdout);
}

答案 1 :(得分:1)

更改此阅读声明

number=read(sockfd,&buff,500); ==> number=read(sockfd,buff,500);  

你只需要阅读缓冲区。