In this section, we will learn what the fclose() function is and how it works in C.
Close File in C: fclose() Function
As mentioned in the fopen() section, the first step in order to work with a file in C program is to open it!
This opening will cause a portion of the memory space to be allocated to the target file.
It is a good practice to release this allocated space after we’re done with the file in order to let other programs use the space if they needed.
This is where the `fclose()` function comes in.
Via this function, we can close and release the memory allocated to the FILE-structure of the target file.
Note: the prototype of this function exists in the `stdio.h` header file and so we need to include the file in order to work with this function.
C fclose() Function Syntax:
Here’s the prototype of the function:
int fclose(FILE *stream)
C fclose() Function Parameters
This function only takes one argument and that is the memory address which is allocated to the FILE-structure of the target file.
Note: we get this address when we open a file via the call to the `fopen()` function.
C fclose() Function Return Value
The returned value of the function is 0 on a successful operation and EOF otherwise.
Example: using fclose() function in C
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main() {
//Call the the fopen function in order to open the file in write mode.
FILE *file = fopen("G:/fileOne.txt","w");
//if there was a problem on opening the file, exit the program.
if (file == NULL){
printf("Could not open the file");
exit(EXIT_FAILURE);
}
char *string = "Hello,\nMy name is John Doe!\n";
for (int i = 0 ; i<strlen(string);i++){
fputc(*(string+i), file);
}
fclose(file);
printf("Done\n");
return 0;
}
Output:
Done