- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
有什么区别吗
int on_exit(void (*function)(int , void *), void *arg);
和
int atexit(void (*function)(void));
除了 on_exit 使用的函数获取退出状态之外?
也就是说,如果我不关心退出状态,是否有任何理由使用其中之一?
编辑:许多答案针对 on_exit
发出警告,因为它是非标准的。如果我正在开发供内部公司使用并保证在特定配置上运行的应用程序,我应该担心这个吗?
最佳答案
如果可能,您应该使用atexit()
。 on_exit()
是非标准的并且不太常见。例如,它在 OS X 上不可用。
Kernel.org - on_exit()
:
This function comes from SunOS 4, but is also present in libc4, libc5 and glibc. It no longer occurs in Solaris (SunOS 5). Avoid this function, and use the standard atexit(3) instead.
关于c - on_exit() 和 atexit() 函数之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680/
程序可以以各种不同的状态代码退出。 我想绑定(bind)一个退出处理程序作为基于此状态代码处理最终任务的所有方式。 是否可以从退出处理程序中分派(dispatch)状态代码? 据我所知,No . 因此
出于好奇,我试图让 libc on_exit 函数工作,但我遇到了段错误问题。我遇到的困难是找到正确使用此功能的解释。该函数在 glibc 中定义为: 函数:int on_exit (void (*f
我有一个小程序可以打开一个文件并对其进行一些操作。我订阅了程序终止的文件关闭如下: static void exit_handler (int ev, void *arg) { fprintf
有什么区别吗 int on_exit(void (*function)(int , void *), void *arg); 和 int atexit(void (*function)(v
我的测试中有这段代码 setup do client = Exredis.start on_exit fn -> client |> Exredis.query ["FLUSHALL"
问题 我想测试一个与主机系统交互并具有副作用的方法的 Elixir 模块。对于这个问题并保持简短,假设它是创建几个目录。这些目录当然应该在测试运行后被删除,如果测试(很长)由于任何原因(错误的模块代码
我是一名优秀的程序员,十分优秀!