On 05/17/2011 05:11 AM, Pádraig Brady wrote: > I was just testing a framebuffer device here and > noticed that there were 2 errors printed by `tr` > > $ tr '\0' $(($RANDOM % 256)) </dev/zero >/dev/full > tr: write error: No space left on device > tr: write error > > I was then wondering it there was some other > error with the device rather than just filling it. > But the latter error is just closeout() noticing > the original write error, and diagnosing just > in case the original writer did not. > > So 3 options. > > 1. leave as is > 2. assume all writers will diagnose, > so don't diagnose previous errors in closeout() > 3. make it configurable (with close_stdout_set_ignore_previous())
4. any client that diagnoses its own errors before calling closeout() should also call clearerr() 5. fix the clients to quit diagnosing an error when close_stdout will also diagnose it That is, I think that tr.c could be simplified to quit checking fwrite failures, and rely on close_stdout to do the check instead. -- Eric Blake [email protected] +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
