补充对其他细微答案的详细修改:
。
<代码>f功能回归特性transmitted,或如果出现产出或编码错误,则负值。 C11dr §7.21.6.3 3(我的强调)
关于成功,发送<>。 <><>tdout通常是缓冲<>/strong>的,因此,特性 印有<>的>/em>可能无法实现或到以后失效。
由于各种原因,<编码>印本(<>>>>>)出现故障时,该编号为负数。 姓名:transmitted。
如果出现以下成功的<代码>fflush(stdout),那么 >的不可否定价值当然是printed。
int transmitted = printf(......);
int flush_retval = fflush(stdout);
int number_certainly_printed = -1; // Unknown
if (transmitted >= 0 && flush_retval == 0) {
number_certainly_printed = transmitted;
}
Note that "printing" a
typically flushes stdout
, but even that action is not specified.
What are the rules of automatic flushing stdout buffer in C?