0

我正在查看 Mach-O 文件的导入部分,并意识到 libSystem.B.dylib 有 2 个不同的退出系统调用(在不同的地址)?我想挂钩被调用的退出方法。虽然我知道反复试验是有效的。我想了解为什么 libSystem 会重新导出 2 个退出调用。有谁知道为什么这个 mach-O 文件使用来自同一个 libSystem 共享库的 2 个不同的 __exit 调用?谢谢。

**0003e6dc: __exit (ord#0)**
0003e6f8: _abort (ord#0)
0003e6fc: _access (ord#0)
0003e700: _atexit (ord#0)
.
.
.
.
**0003e760: _exit (ord#0)**
4

1 回答 1

1

第一个函数是_exit,第二个函数是exit_exit不会调用用atexit()、信号处理程序注册的函数或刷新打开的流。如链接中所述,它还具有不同的进程终止后果。

于 2013-01-30T02:44:49.647 回答