#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.9 1999/11/21 16:01:47 tiniou Exp $";
+ "$Id: tape.c,v 1.10 2000/01/07 19:24:04 tiniou Exp $";
#endif /* not lint */
#ifdef __linux__
{
int got, need = count;
- while ((got = read(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ do {
+ while ((got = read(fd, buf, need)) > 0 && (need -= got) > 0)
+ (char *)buf += got;
+ } while (got == -1 && errno == EINTR);
return (got < 0 ? got : count - need);
}
{
int got, need = count;
- while ((got = write(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ do {
+ while ((got = write(fd, buf, need)) > 0 && (need -= got) > 0)
+ (char *)buf += got;
+ } while (got == -1 && errno == EINTR);
return (got < 0 ? got : count - need);
}