我在哪里可以看到与errno交互的函数列表?

Ori*_*ski 8 c c++ error-handling errno standard-library

在"The C Programming Language"一书中,它说:

"当文件出现错误或文件结束时,库中的许多功能都会设置状态指示器.这些指示器可以显式设置和测试.此外,整数表达式errno(声明<errno.h>)可能包含一个错误编号,提供有关最多的信息.最近的错误."

我在哪里可以看到这些功能的列表?

Mic*_*urr 6

该标准说明了这一点errno:

程序启动时errno的值为零,但任何库函数都不会将其设置为零.如果在本国际标准的功能描述中没有记录errno的使用,则可以通过库函数调用将errno的值设置为非零值,无论是否存在错误.

其中告诉我,任何库函数都可以errno以任何方式使用,除非:

  • 它不能设置errno0
  • 如果标准明确另有说明,它就无法做到它喜欢的事情

请注意,该标准在脚注中建议如下:

因此,errno用于错误检查的程序应在库函数调用之前将其设置为零,然后在后续库函数调用之前检查它.当然,库函数可以保存输入值,errno然后将其设置为零,只要原始值恢复,如果errno在返回之前值仍然为零.

如其他答案所述,对于不在标准中的功能也很常见errno.


小智 5

您应该假设任何函数都可以设置errno,而不仅仅是标准库中的那些.因此,清单有点无意义.