為什麼電腦正在運行的文件無法刪除?
你用的絕對是Windows。
這是操作系統都會提供一個基本功能,叫文件鎖。
Windows會禁止一個正在運行的文件被寫入和刪除,但是允許讀取。
所以,正在運行的文件可以再次打開、或者複製,但是不能刪除和修改它的內容。
Linux就沒有這個限制,它的文件鎖是建議性的,可以無視。
有文件鎖。
其實一直以來有個問題,就是第三方都能實現的解除文件接觸u盤佔用為什麼微軟官方不添加這個功能。添加了百益而無一害啊。
明明surfacebook都提供了鍵盤熱插拔gpu被哪些程序佔用的提示列表了啊。
操作系統的一個功能是文件鎖,這個分為寫鎖和讀鎖。掛上寫鎖其他進程不能讀寫和掛讀寫鎖,掛上讀鎖其他進程不能寫和掛寫鎖。這麼做是為了保證文件的線程安全。
刪除文件的過程可以看作是寫入過程,為了防止刪除到一半的文件被其他進程讀寫,操作系統嘗試掛寫鎖是正常的,這時,如果有其他進程還沒解鎖這個文件,就會刪除失敗,因為掛不上寫鎖。
然後嘛。。。其實系統是知道文件被誰上鎖了,也是可以讓用戶在交互模式下解鎖文件的。 然而windows很蛋疼的沒有給用戶這個選項,只能自己去資源監視器看了。
WINDOWS系統為了保護系統文件和正在運行的程序。
WINDOWS和軟體運行的時候,並不是載入內存里就可以了,還是需要與硬碟的數據文件進行讀寫,一旦發現無法讀寫,就會彈框,各種錯誤。
你如果確實要刪除一些系統正在運行的文件,可以用文件粉碎機,可以的。
看文件系統的實現,Linux使用ext系列文件系統,就可以刪除。Windows使用的不可以
Windows系統有文件鎖。
linux系統沒有可以刪除。
???我用的Linux可以刪啊
Windows下的話,用快捷鍵Ctr+Alt+Delete調出任務管理器,選擇結束任務,然後再刪除就行
推薦閱讀:
※C++中如何把一個變數的值作為另一個變數的名?
※如果程序語言的賦值變為左值賦予右值會更好嗎?
※想從事遊戲製作/設計行業,需要學哪些編程語言?
※C 語言程序變數作用域的實現機制是什麼?
※哪些字體適合程序員用來維護代碼?