On branch master it raises an exception if it can't write to a file.
On branch master it raises an SHException when it reads from a file that
does not exist.
On branch master fix badily named function.
On branch master it knows a file's size.