Changed read() to return 0 if there's no data, rather than EOF, as
apparently that's the expected behavior?

We still can't get far as create() only half works.