gpt4 book ai didi

unix - 在一个进程中关闭所有打开的文件

转载 作者:行者123 更新时间:2023-12-03 14:10:43 25 4
gpt4 key购买 nike

如何找到一个进程中所有打开的文件(从自身内部)?

fork()之后(在exec()之前)知道这似乎很有用。

我知道getdtablesize()和更易移植的sysconf(_SC_OPEN_MAX)的存在,但是尝试关闭每个有效的文件描述符似乎效率低下,无论后面是否有打开的文件。 (我也意识到过早优化的危险,我想这更多是关于美学:-)

最佳答案

如果您的程序将调用forkexec,则实际上应该使用O_CLOEXEC标志打开所有文件描述符,这样就不必在exec之前手动关闭它们。您也可以在打开文件后使用fcntl添加此标志,但这取决于多线程程序中的竞争条件。

关于unix - 在一个进程中关闭所有打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1315382/

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