[英](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.