Creates or opens a file. Possible values of the flags:
- "r" - opens for reading. If the file does not exist or cannot be found, the fopen call fails.
- "w" - opens an empty file for writing. If the given file exists, its contents are destroyed.
- "a" - opens for writing at the end of the file (appending) without removing the EOF marker before writing new data to the file; creates the file first if it doesn't exist.
- "r+" - opens for both reading and writing. (The file must exist.)
- "w+" - opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.
- "a+" - opens for reading and appending; the appending operation includes the removal of the EOF marker before new data is written to the file and the EOF marker is restored after writing is complete; creates the file first if it doesn't exist.