Home | History | Annotate | Download | only in lib
      1 /*
      2  * fgets.c
      3  *
      4  * This will be very slow due to the implementation of getc(),
      5  * but we can't afford to drain characters we don't need from
      6  * the input.
      7  */
      8 
      9 #include <stdio.h>
     10 
     11 char *fgets(char *s, int n, FILE * f)
     12 {
     13     int ch;
     14     char *p = s;
     15 
     16     while (n > 1) {
     17 	ch = getc(f);
     18 	if (ch == EOF) {
     19 	    *p = '\0';
     20 	    return (p == s) ? NULL : s;
     21 	}
     22 	*p++ = ch;
     23 	if (ch == '\n')
     24 	    break;
     25 	n--;
     26     }
     27     if (n)
     28 	*p = '\0';
     29 
     30     return s;
     31 }
     32