当调用execl(…)时,我得到一个errno=2。这是什么意思?我怎么知道这个errno的意思?
当前回答
您可以使用以下一行程序检索系统上的errno值的完整列表,而不是对所得到的任何错误代码运行perror:
cpp -dM /usr/include/errno.h | grep 'define E' | sort -n -k
其他回答
在Linux上也有一个非常简洁的工具,可以立即告诉每个错误代码的含义。Ubuntu: apt-get install errno。
然后,例如,如果您想获取错误类型2的描述,只需在终端中键入errno 2。
使用errno -l可以得到一个包含所有错误及其描述的列表。比之前的海报提到的其他方法简单多了。
它的意思是:
未找到文件或目录。
这里是文档。这应该会告诉你它的含义以及如何处理它们。您应该避免使用数值,并使用这里列出的常量,因为数字在不同的系统之间可能会发生变化。
当您使用strace(在Linux上)运行二进制文件时,它将输出系统调用的返回值以及错误数的含义。这可能有时对你有用。
Call
perror("execl");
以防出错。
示例:
if(read(fd, buf, 1)==-1) {
perror("read");
}
errno(3)和perror(3)的手册页也很有趣……
推荐文章
- c++中size_t和int的区别是什么?
- 在C和c++中静态变量存储在哪里?
- 如何修改Linux系统中打开文件的数量限制?
- errno线程安全吗?
- 如何在C程序中获取当前目录?
- 如何在Linux中永久导出变量?
- 互斥实例/教程?
- 如何添加一个'或'条件在#ifdef
- 如何首次配置postgresql ?
- 检索Linux上单个进程的CPU使用情况和内存使用情况?
- 如何从远程SSH会话发送数据到本地剪贴板
- extern关键字对C函数的影响
- 如果使用if-return-return或if-else-return?
- SSH端口转发~/。ssh /配置文件?
- 在Linux中安装Java SDK后,我可以在哪里找到它?