$ cd glibc-2.23
$ grep -ErI --include='*.c' '= *f?put([cs]|char)\>' |wc -l
1
$ grep -ErI --include='*.c' '[^= ] *f?put([cs]|char)\>' |wc -l
1764
$ man putc
...
RETURN VALUE
fputc(), putc() and putchar() return the character written
as an unsigned char cast to an int or EOF on error.
也许“不太可能”,例如在一系列 putchar 中,一两个失败而不引人注目,而前一个和后一个成功?
或者,至少 99.9999% 的实现中,它们可能根本没有“返回 suchandsuch”语句?
或者,在每个字节之后进行连续的错误检查(在 putchar、putc、fputc 的情况下)可能会导致太大的性能下降?
最佳答案
忽略函数的返回值是软件中许多难以发现的错误的根源。您关于“没有人”检查返回值的说法是不正确的。高可靠性软件系统会检查返回值。
关于c - 没有人从不检查 putc、fputc、puts、fputs、putchar(也许还有 printf)函数的返回值。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042850/