当调用execl(…)时,我得到一个errno=2。这是什么意思?我怎么知道这个errno的意思?


当前回答

Call

perror("execl");

以防出错。

示例:

if(read(fd, buf, 1)==-1) {
    perror("read");
}

errno(3)和perror(3)的手册页也很有趣……

其他回答

在Linux上也有一个非常简洁的工具,可以立即告诉每个错误代码的含义。Ubuntu: apt-get install errno。

然后,例如,如果您想获取错误类型2的描述,只需在终端中键入errno 2。

使用errno -l可以得到一个包含所有错误及其描述的列表。比之前的海报提到的其他方法简单多了。

这比在errno.h中查找代码要快,比这里发布的大多数解决方案都要短,并且不需要安装第三方工具:

perl -E 'say $!2 =转变'

收益率

没有这样的文件或目录

错误码2表示“未找到文件/目录”。通常,可以使用perror函数打印人类可读的字符串。

这里是文档。这应该会告诉你它的含义以及如何处理它们。您应该避免使用数值,并使用这里列出的常量,因为数字在不同的系统之间可能会发生变化。

当您使用strace(在Linux上)运行二进制文件时,它将输出系统调用的返回值以及错误数的含义。这可能有时对你有用。