1. It's good to understand a little bit of theory as to why
you can't write before the beginning of a file. Files
are stored on disk with a fixed beginning, whether that be
at the beginning of a block or a pointer in a tree..
however the particular filesystem stores files.
So, in order to prepend
to a file, what actually has to be done is contents of the
file have to physically be moved forward, so that the
prepended string is located at the beginning of the file.
Basically, the way to do this is to read the entire
file, write out the new string, and then write out the
original contents of the file, as said above.
2. The title of the section referenced above, "How do I
change one line in a file/delete a line in a file/insert
a line in the middle of a file/append to the beginning of
a file?", doesn't make sense. Append means to add at the
end, it should be prepend.