系统中打开的文件太多而实际上没有打开任何文件

时间:2012-05-14 15:50:13

标签: c macos file-descriptor

我正在开发一个备份工具,我收到错误:

  

系统中打开的文件太多

运行一段时间后。该错误由stat()返回。

由于我实际上并没有打开任何文件(fopen()),我的问题是,如果以下任何函数(我正在使用)占用文件描述符,如果是,我该怎么做才能发布它?

  • getwd()
  • chdir()
  • mkdir()
  • stat()
  • time()

1 个答案:

答案 0 :(得分:5)

您列出的功能是安全的;他们都没有返回任何你可以“关闭”的东西。

要了解更多信息,请运行备份过程的lsof -p + PID命令。这将为您提供一个过程已打开的文件列表,这些文件反过来会让您了解正在发生的事情。

请参阅:lsof manual page