我知道printf返回成功时打印的负面错误或字符数.只检查此返回值的唯一原因是程序的执行在某种程度上取决于printf状态.但我想不出这个返回值有用的场景.我,从来没有检查过printf函数的返回值.
返回状态printf有用的场景是什么?
Linux的"man close"警告(SVr4,4.3BSD,POSIX.1-2001):
不检查close()的返回值是一个常见但严重的编程错误.很可能首先在最后的close()上报告先前write(2)操作的错误.关闭文件时不检查返回值可能会导致数据无声丢失.使用NFS和磁盘配额尤其可以观察到这种情况.
我可以相信这个错误是常见的(至少在应用程序中;我不是内核黑客).但是,在今天或过去三十年的任何时候,它有多严重?特别是:
是否存在这种静默数据丢失的简单,可重现的示例?即使是一个人为的人,比如在close()期间发送SIGKILL?
如果存在这样的示例,则可以比仅仅更优雅地处理数据丢失
printf("Sorry, dude, you lost some data.\n"); ?