c - fprintf() 函数是否设置 errno 作为其错误指示?

标签 c

我看到很多库函数如 printf, recv, send, strtol, socket和许多其他设置errno值来指示其适当的误差。我在手册页和互联网上搜索了 fprintf() 但没有找到任何明确的内容。所以请帮我消除我的疑问。

我想知道 fprintf() 是否使用 errno 来指示其错误?

最佳答案

通过 fprintf() 设置 errno 是 C 标准指定的。

某些编译器确实会创建将 errno 设置为 ERANGE 值的代码,以指示超出范围(溢出)或其他值。回想一下,C 标准仅指定了几个:EDOMEILSEQERANGE

关于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/

相关文章:

C文件操作: Check opened file pointer access mode

C - 能够读取 EVP 加密文件,但是当我将它存储在一个字符数组中时,一切都消失了

c - 为什么多个源文件中的枚举不会导致链接错误?

c++ - 特定地址的外部变量

c - EnumWindows 和 CloseHandle

c - 在甚至不编辑它的函数调用后取随机值的整数

c - 逐行读取标准输入

ios - SSZipArchive 的 C header 中的 "Include of non-modular header inside framework module"

c - 我是否必须在多线程服务器中使用互斥锁保护 bufferevent_write

php - PHP 类的 Apache2 模块