在《C语言程序设计》一书中提到:
许多库函数在发生错误或文件结尾时设置状态指示器,这些指示器可以被显式地设置和测试。此外,整数表达式errno(声明在中)可能包含有关最近错误的进一步信息。
我该在哪里查看这些函数列表?
许多库函数在发生错误或文件结尾时设置状态指示器,这些指示器可以被显式地设置和测试。此外,整数表达式errno(声明在中)可能包含有关最近错误的进一步信息。
我该在哪里查看这些函数列表?
errno
的定义如下:
这意味着除了以下两种情况外,任何库函数都可以随意操作程序启动时,
errno
的值为零,但任何库函数都不会将其设置为零。只要在此国际标准的函数描述中未记录使用errno
,库函数调用可能会将errno
设置为非零值,无论是否存在错误。
errno
:
errno
设置为0
正如其他答案中所述,非标准函数通常也会设置因此,使用
errno
进行错误检查的程序应在调用库函数之前将其设置为零,然后在后续的库函数调用之前检查它。当然,库函数可以在进入时保存errno
的值,然后将其设置为零,只要在返回之前如果errno
的值仍为零,则恢复原始值。
errno
。errno
被指定为线程特定。-1 表示关于此事的错误信息。 - R.. GitHub STOP HELPING ICEerrno
是一个“可修改的左值宏,具有int类型和线程本地存储期”。errno
“不需要是对象的标识符”。 - pmorerrno
可以得到哪些值,每个值代表什么意思。你可以在 intro(2)
中看到它们的列表。@Adam,正如Neil所说,任何函数都可以编译errno.h并设置errno。 根据定义,不可能列出所有已以这种方式编译以使用核心errno功能的实用程序。
话虽如此,有几种方法可将错误报告回用户。 使用errno只是其中之一。
您可以使用您喜欢的编辑器和“在文件中查找...”功能来搜索包含errno
关键字的文件。