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 |