반응형
int read_one(int fd, char *ptr, int maxlen)
{
int n, rc;
char c;
for (n = 1; n < maxlen; n++) {
if ((rc = read(fd, &c, 1)) == 1) {
*ptr++ = c;
}
else if (rc == 0) {
if (n == 1) {
return (0); // EOF, no data read
}
else {
break; // EOF, some data was read
}
} else {
return (-1); // ERROR
}
}
*ptr = 0;
return (n);
}
반응형