1.Opening a stream
FILE* fopen(char* fileName, char* mode)
Description:The function opens a stream to the named file (specified by its file name - char* fileName) in a specified mode (specified by char* mode).
The available modes are:
"rt"\"rb" | Open file for reading |
"wt"\"wb" | Create file for writing. If any previous content exist, it shall be discarded |
"at"\"ab" | Opens or creates a file for writing, starting at the end of the file |
"r+t"\"r+b" | Open a file for update |
"w+t"\"w+b" | Creates text file for update. If any previous content exist, it shall be discarded |
"a+t"\"a+b" | Opens or creates a file for writing, starting at the end of the file |
Files can be opened in text mode (example: "rt" opens a file for reading in text mode while "rb" opens a file for reading in binary mode).
The update mode (example "w+t") permits reading and writing on the same file. You must use int fflush(FILE* stream) or a file-positioning function between a read and a write to move the cursor at the position you want.
Returns:
The function returns a stream (FILE*) to the file if the call is successful. Otherwise returns NULL.
Tips&Tricks:
-The number of characters in a file name is limited by the FILENAME_MAX macro.
-The number of opened streams (files) is limited by the FOPEN_MAX macro.
2.Closing a Stream
int fclose(FILE* stream).
Description:
The function flushes any unwritten data for the stream sent as parameter, discards any unread buffered input and frees any automatically allocated buffer. After that it closes the stream.
Returns
0 - if the stream was successfully closed
EOF - if an error happened while closing the stream.
3.Example
#include<stdio.h> int main(void) { /*Variables*/ FILE* f = NULL; int status = 0; /*Opens the stream*/ f = fopen("file1.txt","rt"); /*Checks if the stream was opened correctly*/ if(NULL!=f) { puts("File was opened successfully"); /*Closes the file*/ status = fclose(f); /*Checks if the stream was closed correctly*/ if(0==status) { puts("File closed successfully"); } else { puts("File could not be closed"); } } else { puts("Could not access file"); } return 0; }
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!