【发布时间】:2019-08-18 11:34:11
【问题描述】:
在“UNIX 环境中的高级编程”第 199 页(第 7.3 节)中,我读到:
如果 (a) 这些函数 [exit, _exit, _Exit] 中的任何一个在没有退出状态的情况下被调用
我写了一个简单的程序来验证这一点:
#include <stdio.h>
#include <unistd.h>
int main() {
exit();
}
但是gcc source.c 抱怨:
source.c:5:5: 错误:函数“退出”的参数太少
这怎么可能?他们的意思是“直接从程序集调用”吗?
编辑:段落说:
所有三个出口函数都需要一个整数参数,我们称之为出口 状态。大多数 UNIX 系统 shell 提供了一种检查进程退出状态的方法。 如果 (a) 这些函数中的任何一个在没有退出状态的情况下被调用,(b) main 会返回 没有返回值,或 (c) 主函数未声明返回整数,则 进程的退出状态未定义。
【问题讨论】:
-
我没有可用的 APUE 副本(假设它甚至与您正在查看的版本相同),但引用比该句子片段更多的上下文可能有助于获得答案。