Функция чтения файлов () в Unix Systems
Код ниже перезапускаетread()
работать в случае сбоя из-за прерывания по сигналу.read()
возобновляет чтение с того места, где оно было прервано. Так что еслиread()
прерывается как раз перед чтениемEOF
символ, что он вернет, сколько байтов он прочитал?
int r_read(int fd, void *buf, int size)
{
while((retval=read(fd,buf,size))==-1 && errno ==EINTR);
return retval;
}
С уважением.