Lesson 31 / 38

Opening & Closing Files

Open and close files with fopen and fclose, choose the right mode and always check for failure.

FILE* is your handle

fopen(path, mode) returns a FILE * used for all further operations on that file, or NULL if it couldn't be opened. Always check for NULL before using it.

Modes

"r" read, "w" write (truncates or creates), "a" append, "r+" read+write. Append a b for binary mode.

FILE *fp = fopen("notes.txt", "w");
if (fp == NULL) {
    perror("fopen failed");
    return 1;
}

fprintf(fp, "Hello, file!\n");
fclose(fp);

Always close

fclose(fp) flushes buffered writes to disk and releases the file handle. Forgetting it can lose data still sitting in the buffer.