gpt4 book ai didi

c++ - 在 UNIX 中使用 _exit 时,未清理的资源会发生什么情况?

转载 作者:太空狗 更新时间:2023-10-29 20:06:35 25 4
gpt4 key购买 nike

我读到过,当您希望在 UNIX 中终止进程时,您可以调用 exit_exit,而且退出会释放资源(当我们从 main) 返回,其中 _exit 立即终止而不进行清理。

使用 _exit 关闭程序对操作环境有什么影响,为什么要使用它?

最佳答案

使用 _exit 退出与使用 exit 退出时释放的资源没有区别,除非您安装了 atexit 处理程序。已命名的共享内存对象、SysV IPC 资源、文件系统中的文件等在任何一种退出时都不会被破坏;分配给进程的内存(实际上是它的整个虚拟内存空间)、文件描述符等都将被销毁。有关详细信息,请阅读 POSIX 中的文档:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/_Exit.html

http://pubs.opengroup.org/onlinepubs/9699919799/functions/exit.html

通常唯一重要的区别是,如果您使用 _exit,stdio FILE 对象可能不会被刷新(一些写入可能会丢失)。

关于c++ - 在 UNIX 中使用 _exit 时,未清理的资源会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com