gpt4 book ai didi

c - 防止重用文件描述符

转载 作者:IT王子 更新时间:2023-10-29 01:12:15 26 4
gpt4 key购买 nike

在 Linux 中(或者更普遍地在 POSIX 操作系统中)是否有保证在程序执行期间不会重用文件描述符,即使一个文件关闭而另一个文件打开?我的理解是,这种情况通常会导致关闭文件的文件描述符被重新分配给新打开的文件。

我正在做一个 I/O 跟踪项目,如果我可以假设在 open()/fopen() 调用之后,对该文件描述符的所有后续 I/O 都指向同一个文件,这将使生活变得更简单.

我将采用编译时或运行时解决方案。

如果不可能,我可以在处理跟踪文件时进行自己的核算(注意所有打开和关闭调用的位置),但我更愿意在执行跟踪程序期间解决问题。

最佳答案

请注意 POSIX requires :

The open() function shall return a file descriptor for the named file that is the lowest file descriptor not currently open for that process.

因此,从最严格的意义上讲,您的请求将更改程序的环境,使其不再符合 POSIX 标准。

也就是说,我认为最好的选择是使用 LD_PRELOAD trick拦截对 close 的调用并忽略它们。

关于c - 防止重用文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669853/

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