Next: , Previous: fgetpos, Up: Stdio


4.12 fgets—get character string from a file or stream

Synopsis

     #include <stdio.h>
     char *fgets(char *buf, int n, FILE *fp);
     
     #include <stdio.h>
     char *_fgets_r(struct _reent *ptr, char *buf, int n, FILE *fp);
     

Description
Reads at most n-1 characters from fp until a newline is found. The characters including to the newline are stored in buf. The buffer is terminated with a 0.

The _fgets_r function is simply the reentrant version of fgets and is passed an additional reentrancy structure pointer: ptr.


Returns
fgets returns the buffer passed to it, with the data filled in. If end of file occurs with some data already accumulated, the data is returned with no other indication. If no data are read, NULL is returned instead.


Portability
fgets should replace all uses of gets. Note however that fgets returns all of the data, while gets removes the trailing newline (with no indication that it has done so.)

Supporting OS subroutines required: close, fstat, isatty, lseek, read, sbrk, write.