chiark / gitweb /
Merge gregkh@ehlo.org:/home/kay/public_html/pub/scm/linux/hotplug/udev-kay
[elogind.git] / klibc / klibc / fgets.c
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 NULL;
21     }
22     *p++ = ch;
23     n--;
24     if ( ch == '\n' )
25       break;
26   }
27   if ( n )
28     *p = '\0';
29   
30   return s;
31 }
32
33
34