C 为什么`#u exit`有下划线前缀,而其他系统调用不';你没有吗?
我不熟悉C和Linux,只是一个关于系统调用的问题:C 为什么`#u exit`有下划线前缀,而其他系统调用不';你没有吗?,c,linux,C,Linux,我不熟悉C和Linux,只是一个关于系统调用的问题: 那么为什么\u exit有下划线前缀,而其他函数没有下划线前缀呢?系统调用\u exit的命名是为了将其与库函数exit区分开来 在大多数情况下,程序应该使用exit库调用来终止进程。此函数调用在内部调用\u exit之前注册的任何atexit处理程序,从而实际终止进程。可能是为了避免与标准库调用混淆:/对于库内部函数,有使用前导下划线的历史,因为用户程序不应该使用它们。因此,\u exit可能是exit的“内部”版本,它在清理和运行atex
那么为什么
\u exit
有下划线前缀,而其他函数没有下划线前缀呢?系统调用\u exit
的命名是为了将其与库函数exit
区分开来
在大多数情况下,程序应该使用
exit
库调用来终止进程。此函数调用在内部调用\u exit
之前注册的任何atexit
处理程序,从而实际终止进程。可能是为了避免与标准库调用混淆:/对于库内部函数,有使用前导下划线的历史,因为用户程序不应该使用它们。因此,\u exit
可能是exit
的“内部”版本,它在清理和运行atexit()
函数后通过操作系统实际退出。但事实证明,如果您想绕过清理,可以直接调用\u exit()
,这是非常有用的,并最终实现了标准化。不管怎样,这是我的猜测。我不理解这个接近的原因。这个问题似乎非常清楚,重点也很明确。