可能重复:
Unix 系统中的文件 read() 函数
假设 read() 函数读取了 10 个字节的数据并存储在缓冲区中。现在如果 unix 中的 read() 函数被信号中断,我重新启动 read 函数,如下所示,下一个字节将存储在哪里缓冲区,当前位置+1 或将从缓冲区的开头写入。
int r_read(int fd, void *buf, int size)
{
while((retval=read(fd,buf,size))==-1 && errno ==EINTR);
return retval;
}
问候