/* * fgets.c * * This will be very slow due to the implementation of getc(), * but we don't have anywhere to put characters we don't need from * the input. */ #include char *fgets(char *s, int n, FILE *f) { int ch; char *p = s; while (n > 1) { ch = getc(f); if (ch == EOF) { *p = '\0'; return NULL; } *p++ = ch; n--; if (ch == '\n') break; } if (n) *p = '\0'; return s; }