n
的值即将为 9,sockfd = 3
并且当它调用读取函数时,它不是从读取函数中出来的。打印读取起始行后,它仅停在那里:
while(1)
{
if (n < 0)
{
printf("ERROR writing to socket");
}
else if(n == 0)
{
printf("Nothing");
}
printf(" read start n=%d\n ,sockfd = %d\n",n,sockfd);
n = read(sockfd,buffer,1024);
if (n < 0)
{ error("ERROR reading from socket");
}
printf("Reply= %s",buffer);
write_buf_to_file("/root/abc_regr/receive.txt",buffer);
}
return;
最佳答案
read()
默认情况下是阻塞调用,因此它将等待直到获取数据。如果您想要非阻塞功能,请阅读 this 的答案问题。
关于c - 读取函数没有返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916499/