You do need to do an fseek to that location, but not because C uses separate read and write pointers. The standard says that when switching between read and write mode on a stream, there needs to be a flush or seek between them. So you would read to the location you want to write, then do fseek(strm, 0, SEEK_CUR);
to switch the mode without changing the file position.
And keep in mind that you will be overwriting whatever is there, not inserting.