Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么`#u exit`有下划线前缀,而其他系统调用不';你没有吗?_C_Linux - Fatal编程技术网

C 为什么`#u exit`有下划线前缀,而其他系统调用不';你没有吗?

C 为什么`#u exit`有下划线前缀,而其他系统调用不';你没有吗?,c,linux,C,Linux,我不熟悉C和Linux,只是一个关于系统调用的问题: 那么为什么\u exit有下划线前缀,而其他函数没有下划线前缀呢?系统调用\u exit的命名是为了将其与库函数exit区分开来 在大多数情况下,程序应该使用exit库调用来终止进程。此函数调用在内部调用\u exit之前注册的任何atexit处理程序,从而实际终止进程。可能是为了避免与标准库调用混淆:/对于库内部函数,有使用前导下划线的历史,因为用户程序不应该使用它们。因此,\u exit可能是exit的“内部”版本,它在清理和运行atex

我不熟悉C和Linux,只是一个关于系统调用的问题:
那么为什么
\u exit
有下划线前缀,而其他函数没有下划线前缀呢?

系统调用
\u exit
的命名是为了将其与库函数
exit
区分开来


在大多数情况下,程序应该使用
exit
库调用来终止进程。此函数调用在内部调用
\u exit
之前注册的任何
atexit
处理程序,从而实际终止进程。

可能是为了避免与标准库调用混淆:/对于库内部函数,有使用前导下划线的历史,因为用户程序不应该使用它们。因此,
\u exit
可能是
exit
的“内部”版本,它在清理和运行
atexit()
函数后通过操作系统实际退出。但事实证明,如果您想绕过清理,可以直接调用
\u exit()
,这是非常有用的,并最终实现了标准化。不管怎样,这是我的猜测。我不理解这个接近的原因。这个问题似乎非常清楚,重点也很明确。