Teamwork. :-)

The only other inconsistency I found is how offsets are handled for
non-existent paths.

    >> File.delete('/tmp/offset') #=> 1
    >> File.binwrite('/tmp/offset','string',2)
    Errno::ENOENT: No such file or directory - /tmp/offset
	from (irb):6:in `binwrite'
	from (irb):6
	from /usr/local/bin/irb:12:in `<main>'
    >> File.write('/tmp/offset','string',2) #=> 6
    >> File.read('/tmp/offset') #=> "\u0000\u0000string"

     >> File.delete('/tmp/offset') #=> 1
     >> File.binwrite('/tmp/offset','string',-2)
     Errno::ENOENT: No such file or directory - /tmp/offset
	from (irb):14:in `binwrite'
	from (irb):14
	from /usr/local/bin/irb:12:in `<main>'
     >> File.write('/tmp/offset','string',-2)
     Errno::EINVAL: Invalid argument - /tmp/offset
	from (irb):16:in `write'
	from (irb):16
	from /usr/local/bin/irb:12:in `<main>'