The fact that the length is needed to tell the size of the char* is not necessarily the only good reason. If our read can read forever, that's bad...