Write mode either overwrites the existing file or creates a new one if the file
is non-existent. Append mode opens the file and sets the file pointer/cursor to
the end of the file so that any write operation may start from the very end of
that file. It cannot overwite an existing file.
The fopen() function opens the file whose name is the string pointed
to by path and associates a stream with it.
The argument mode points to a string beginning with one of the
following sequences (possibly followed by additional characters, as
"r" Open text file for reading. The stream is positioned at the
beginning of the file.
"r+" Open for reading and writing. The stream is positioned at the
beginning of the file.
"w" Truncate file to zero length or create text file for writing.
The stream is positioned at the beginning of the file.
"w+" Open for reading and writing. The file is created if it does
not exist, otherwise it is truncated. The stream is
positioned at the beginning of the file.
"a" Open for appending (writing at end of file). The file is
created if it does not exist. The stream is positioned at the
end of the file.
"a+" Open for reading and appending (writing at end of file). The
file is created if it does not exist. The initial file
position for reading is at the beginning of the file, but
output is always appended to the end of the file.
The mode string can also include the letter 'b' either as a last
character or as a character between the characters in any of the two-
character strings described above. This is strictly for
compatibility with C89 and has no effect; the 'b' is ignored on all
POSIX conforming systems, including Linux. (Other systems may treat
text files and binary files differently, and adding the 'b' may be a
good idea if you do I/O to a binary file and expect that your program
may be ported to non-UNIX environments.)
Opening a file in append mode (a as the first character of mode)
causes all subsequent write operations to this stream to occur at
end-of-file, as if preceded the call:
fseek(stream, 0, SEEK_END);
Append mode with fread and fwrite
We can mimic the operation of append mode in a C program using the following steps:
open the file in read mode
read the size attribute
copy the entire file into buffer
Open file in write mode
Write existing buffer
append new buffer
close the file
You have viewed 1 page out of 248. Your C learning is 0.00% complete. Login to check your learning progress.