我看到很多库函数如 printf, recv, send, strtol, socket
和许多其他设置errno
值来指示其适当的误差。我在手册页和互联网上搜索了 fprintf() 但没有找到任何明确的内容。所以请帮我消除我的疑问。
我想知道 fprintf() 是否使用 errno 来指示其错误?
最佳答案
通过 fprintf()
设置 errno
是 C 标准未指定的。
某些编译器确实会创建将 errno
设置为 ERANGE
值的代码,以指示超出范围(溢出)或其他值。回想一下,C 标准仅指定了几个:EDOM
、EILSEQ
、ERANGE
。
关于fprintf()
的返回值:
The
fprintf
function returns the number of characters transmitted, or a negative value if an output or encoding error occurred. C11 §7.21.6.1 14
if (fprintf(ostream, ...) < 0) {
Handle_Error();
}
关于c - fprintf() 函数是否设置 errno 作为其错误指示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293809/