Good point about treating non-newline fgets() data as an error; besides a line too long, this might also result from the user sending a delimiter such as EOT from a terminal. (The SVID says this, but SVR2 doesn't seem to act that way.)