繁体   English   中英

Linux上(已删除)文件创建问题

[英](deleted) file creating issue on Linux

我的进程读取文件并将其删除。 这项活动发生了2000次以上。

当我检查/ proc / PID / fd中的文件时,我看到该文件,并且在每一行的末尾都看到(deleted) 但是我看到1024条记录,其中1020条是(已删除)条目。 后来,此PID进行的新文件操作失败。

为了解决此问题,请在调试时保持流程,并执行

p关闭(id)

此(id)取自/ proc / PID / fd上的ll输出。

想知道文件未删除的原因。 首先使用fdclose ,然后删除文件,即使文件显示为(已删除)

/ proc / $ PID / fd目录显示由其描述符命名的进程的所有打开文件。 / proc / $ PID / fd中的每个文件都表示一个打开的文件/套接字/管道等。如果描述符属于磁盘文件,则其符号链接指向打开的文件的绝对路径。

此处, (已删除)表示该进程打开的文件已删除,并且在磁盘上不再存在。 因此,您遇到的问题是,打开的文件在unlink(delete)之前没有被关闭。 您需要先删除它们,然后再删除文件描述符。

如果您使用C进行编码,请先使用fclose(C standard)或close(POSIX)适当地关闭文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM