小编Kos*_*tja的帖子

POSIX标准对atexit()处理程序中的线程堆栈有何看法?什么是操作系统的做法?

当我们的UNIX/C程序需要紧急出口时,我们使用exit(3)函数并安装atexit(3)处理程序以进行紧急清理.这种方法工作正常,直到我们的应用程序被线程化,此时atexit()处理程序停止工作可预测.

我们通过试验了解到一个错误,即线程可能已经死在atexit()处理程序中,并且它们的堆栈已经解除分配.

我没有在标准链接线程消失中找到引用atexit():从main()返回后线程停止存在,但它是在调用atexit()之前还是之后?Linux,FreeBSD和Mac上的实际操作是什么?

在多线程程序中是否有一个很好的紧急清理模式?

c unix posix atexit

7
推荐指数
1
解决办法
573
查看次数

标签 统计

atexit ×1

c ×1

posix ×1

unix ×1