Read a string from a stream
#include <stdio.h>
char* fgets( char* buf,
int n,
FILE* fp );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The fgets() function reads a string of bytes from the stream specified by fp, and stores them in the array specified by buf.
It stops reading bytes when:
Or:
Or:
The newline character isn't discarded. A null character is placed immediately after the last byte read into the array.
Also, a newline character might not appear as the last character in a file when the end-of-file is reached.
The same pointer as buf, or NULL if the stream is at the end-of-file or an error occurs (errno is set).
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *fp;
char buffer[80];
char *ret;
fp = fopen( "file", "r" );
if (fp == NULL) {
perror ("fopen()");
return EXIT_FAILURE;
}
while (1) {
ret = fgets( buffer, 80, fp );
if (ret == NULL) {
if (feof( fp )) {
// We're at the end of the file.
return EXIT_SUCCESS;
} else {
// An error occurred.
perror ("fgets()");
return EXIT_FAILURE;
}
}
fputs( buffer, stdout );
}
}
| Safety: | |
|---|---|
| Cancellation point | Yes |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |