fgets function in c: The function char *fgets(char *str, int num, FILE *stream); reads up to num-1 characters from stream and store them in a character array pointed by str. It stops reading characters from stream when either num-1 characters are read or newline character is read, or EOF is received. A terminating null character(‘\0’) is automatically appended after the last character copied to str.
Function prototype of fgets
char *fgets(char *str, int num, FILE *stream);
- str : A pointer to an array of characters where the string read from stream is stored.
- num : This is the maximum number of characters to read from stream.
- stream : A pointer to a FILE object which identifies a stream from where characters are read from.
Return value of fgets
This function returns the same str on success, or a null pointer in case of an error. If EOF is encountered before reading any character from stream then it returns a null pointer and the contents of str remain unchanged.
C program using fgets function
The following program shows the use of fgets function to read strings form a stream. Let file “textFile.txt” contains “fgets C Standard Library function” string. The content of this file will get printed by the following program.

#include <stdio.h>
int main(){
FILE *file;
char string[100];
file = fopen("textFile.txt", "r");
if(file == NULL) {
perror("Error : Unable to open a file");
return(1);
} else {
if(fgets(string, 40, file)!=NULL) {
/* printing string on standard output */
puts(string);
}
fclose(file);
}
return(0);
}
Output
fgets C Standard Library function