我注意到在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/