Jeff King wrote: > [EOVERFLOW] > The file is a regular file, nbyte is greater than 0, the starting > position is before the end-of-file, and the starting position is > greater than or equal to the offset maximum established in the open > file description associated with fildes. > > That's not _exactly_ what's going on here, but it's pretty close. And is > what you would get if you implemented read_exactly() in terms of > something like pread(). All that really matters is the strerror() that the user would see. For EOVERFLOW, that is Value too large to be stored in data type For EILSEQ, it is Illegal byte sequence Neither is perfect, but the latter seems like a better fit for the kind of file format errors we're describing here. Of course, it's even better if we fix the callers and don't try to wedge this into errno. If you are okay with the too-long/too-short confusion in EOVERFLOW, then there is EMSGSIZE: Message too long Hope that helps, Jonathan