So apparently when you open a file read/write, then read from it you need to seek back to the beginning and preferably truncate it. This is well documented on countless guides but it's never mentioned what happens if you don't seek back to the start. Would writing to a file without the seek just append the write to the file and if so what is the point of a read/write/append mode? And in a similar vein what would be the point of opening a file in read/write/truncate (w+) mode possibly be? I'm writing a collection of functions with plain English names that abstracts away the use of filehandles so I never have to think about file i/o again but can't for the life of me think of a scenario where either a+ or w+ would be useful.