【发布时间】:2013-07-16 07:02:26
【问题描述】:
我的 C 程序在 Solaris 上运行,并且在某些情况发生时需要自行重启,例如接收到信号。现在考虑用exec族函数来实现这个特性,有3个问题:
- 我知道在执行之前应该关闭文件描述符,但是程序使用了一些第三方库,这些库也打开了文件,那么我该如何关闭这些文件描述符呢?
- 除了文件描述符,还有什么系统资源需要释放吗?
- 除了 exec 系列函数,还有其他方法可以实现这个函数吗?
【问题讨论】:
-
想想共享内存段(System V IPC 风格)和类似的事情。如果程序不使用它们,没问题。如果是这样,它们需要清理吗?这取决于程序以及如果发现它通常创建的资源已经存在,它会做什么。