반응형
int readline(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;
if (c == '\n') {
break;
}
}
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);
}
반응형