]> git.ipfire.org Git - thirdparty/systemd.git/blob - klibc/klibc/fgets.c
klibc: version 1.0.14
[thirdparty/systemd.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