亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 golang 中,移動打開的文件會導致泄漏或任何其他問題嗎?

在 golang 中,移動打開的文件會導致泄漏或任何其他問題嗎?

Go
楊魅力 2023-04-24 16:07:08
考慮以下代碼:f, err := os.Create(tmpFilepath)defer f.Close()// do some writing to fos.Rename(tmpFilepath, newpath)一些錯誤處理已被刪除以簡化。另外,我知道這段代碼是錯誤的,但我試圖了解這段代碼在文件正確性和性能方面的影響。這里有資源泄漏嗎?順便說一句,解決方法是在您完成寫入文件后關閉。
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

如果我們正在討論一個實現 POSIX 語義的操作系統和文件系統(也就是說,不是通常不允許您重命名打開的文件的 Windows),那絕對沒有問題:打開的文件描述符僅算作指向文件的硬鏈接數據。

重命名文件的數據不會以某種方式與打開的文件描述符分離——將后者視為對該數據的一種“匿名”引用。

引用手冊close(2):_

如果文件的鏈接數為0,當與該文件關聯的所有文件描述符都關閉時,該文件占用的空間將被釋放,該文件將不再可訪問。


查看完整回答
反對 回復 2023-04-24
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號