簡體   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