【发布时间】:2013-03-01 04:41:08
【问题描述】:
我注意到在 fd 泄漏期间,当达到文件描述符的上限时,重命名调用失败。不幸的是,我没有错误代码。
会不会是文件描述符缺失与重命名失败有关?
据我所知,在 rename() 的实现中使用了 link() 系统调用。需要fd吗?
使用的重命名实现来自\glibc-2.17\sysdeps\posix\
【问题讨论】:
-
重命名失败的 errno 是什么?
-
没有。 Rename 是一个不会与文件描述符混淆的系统调用;并且系统调用是原子的,因此,重命名可能会失败。 BTW:重命名是目录操作;内核需要为该目录打开一个 inode。
-
很遗憾没有保存。