重複の可能性:
Unix システムのファイル read() 関数
read() 関数が 10 バイトのデータを読み取り、バッファに格納されたとします。ここで、UNIX の read() 関数がシグナルによって中断され、以下に示すように読み取り関数を再開した場合、次のバイトはどこに格納されますか? currentposition+1 またはバッファの先頭から書き込まれます。
int r_read(int fd, void *buf, int size)
{
while((retval=read(fd,buf,size))==-1 && errno ==EINTR);
return retval;
}
よろしく