第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么寫入已刪除的文件不會(huì)在 Go 中返回錯(cuò)誤?

為什么寫入已刪除的文件不會(huì)在 Go 中返回錯(cuò)誤?

Go
慕的地6264312 2022-06-27 10:38:38
即使它正在寫入已刪除的文件,該程序也會(huì)成功運(yùn)行。為什么這行得通?package mainimport (    "fmt"    "os")func main() {    const path = "test.txt"    f, err := os.Create(path) // Create file    if err != nil {        panic(err)    }    err = os.Remove(path) // Delete file    if err != nil {        panic(err)    }    _, err = f.WriteString("test") // Write to deleted file    if err != nil {        panic(err)    }    err = f.Close()    if err != nil {        panic(err)    }        fmt.Printf("No errors occurred") // test.txt doesn't exist anymore}
查看完整描述

1 回答

?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

在類 Unix 系統(tǒng)上,當(dāng)一個(gè)進(jìn)程打開一個(gè)文件時(shí),它會(huì)得到一個(gè)File descriptor指向進(jìn)程File table入口的文件,而進(jìn)程入口又是指磁盤上的inode 結(jié)構(gòu)。inode保存文件信息,包括data location.


目錄的內(nèi)容只是成對的 inode 編號(hào)和名稱。


如果你刪除一個(gè)文件,你只需inode從目錄中刪除一個(gè)鏈接,它inode仍然存在(只要沒有從某個(gè)地方指向它的鏈接,包括進(jìn)程)并且可以從/到讀取和寫入數(shù)據(jù)data location。


在 Windows 上,此代碼失敗,因?yàn)?Windows 不允許刪除打開的文件:


panic: remove test.txt: The process cannot access the file because it is being used by another process.

goroutine 1 [running]:

main.main()

D:/tmp/main.go:18 +0x1d1

exit status 2


查看完整回答
反對 回復(fù) 2022-06-27
  • 1 回答
  • 0 關(guān)注
  • 136 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)