2 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
在操作系統(tǒng)級(jí)別,文件由許多組件組成:
內(nèi)容存儲(chǔ)在存儲(chǔ)設(shè)備上的某個(gè)位置;
保留除名稱之外的所有文件信息的索引節(jié)點(diǎn);
目錄中列出的名稱(也存儲(chǔ)在存儲(chǔ)設(shè)備上);
打開文件時(shí),每個(gè)打開該文件的應(yīng)用程序都會(huì)處理保留一些文件內(nèi)容的內(nèi)存緩沖區(qū)。
所有這些均已鏈接,操作系統(tǒng)將保留其預(yù)訂。
如果在文件被另一個(gè)應(yīng)用程序打開時(shí)刪除了文件(重定向操作符>
將其保持打開狀態(tài),直到./prog
完成),則只會(huì)從目錄中刪除該名稱。難題的其他部分仍然存在,并且它們一直保持工作,直到最后一個(gè)使文件保持打開狀態(tài)的應(yīng)用程序?qū)⑵潢P(guān)閉。這是當(dāng)文件內(nèi)容被丟棄在存儲(chǔ)介質(zhì)上時(shí)。
如果刪除文件,則文件./prog
將繼續(xù)運(yùn)行并產(chǎn)生輸出,并且會(huì)增長并使用存儲(chǔ)介質(zhì)上的空間,但由于無法訪問它,因此無法再次打開該文件。只有刪除該文件時(shí)已經(jīng)打開的程序仍可以訪問該文件,直到他們將其關(guān)閉。
即使您重新創(chuàng)建該文件,它也是一個(gè)與已刪除文件名稱相同的不同文件。./prog
不受影響,其輸出將轉(zhuǎn)到舊的,已刪除的文件。
重定向其輸出后,除了重新啟動(dòng)外./prog
,無法說服它在a.txt
刪除后將其輸出存儲(chǔ)在其他文件中。
如果./prog
將其自身寫入,有幾種方法可以實(shí)現(xiàn)a.txt
(它們都需要更改的代碼./prog
)。
添加回答
舉報(bào)