16
Q: I'm trying to update a file in place, by using
fopenmode"r+", reading a certain string, and writing back a modified string, but it's not working.A: Be sure to call
fseekbefore you write, both to seek back to the beginning of the string you're trying to overwrite, and because anfseekorfflushis always required between reading and writing in the read/write "+" modes.
My question is why fseek or fflush is always required between reading and writing in the read/write "+" modes? Section 5.2 of
Andrew Koenig's
C Traps and Pitfalls (1989) mentioned that it is because of a backward compatibility issue. Can anyone explain in detail?