Always open() files with O_BINARY, so Windows doesn't mess with data. We can handle newlines on our own.