我注意到在fd泄漏期间,虽然达到了文件描述符的上限,但重命名调用失败。不幸的是我没有错误代码。

缺少文件描述符是否可能与重命名失败有关?

据我在rename()的实现中所看到的,使用了link()系统调用。需要fd吗?

使用的重命名实现来自\glibc-2.17\sysdeps\posix\

最佳答案

我编译了这个程序:

#include <stdio.h>

int main()
{
    rename("a", "a1");
}

并在可执行文件上运行strace。初始化代码完成后,将发生的所有事情是:
rename("a", "a1")                       = 0
exit_group(0)                           = ?

即没有系统调用open新文件描述符。

关于c - 如果文件描述符不足,重命名会失败吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15382051/

10-11 21:55
查看更多