我想為文件預先分配空間。如何增大文件大???(*os.File).Seek(size,os.SEEK_SET)
or
(*os.File).Truncate(size)兩者之間有什么區別?
2 回答

有只小跳蛙
TA貢獻1824條經驗 獲得超8個贊

LEATH
TA貢獻1936條經驗 獲得超7個贊
截斷
func Truncate(name string, size int64) error
Truncate 更改了命名文件的大小。如果文件是符號鏈接,則會更改鏈接目標的大小。如果存在錯誤,它將是類型 *PathError
func (*File) 尋找
func (f *File) Seek(offset int64, wherece int) (ret int64, err error)
Seek 設置下一個讀取或寫入文件的偏移量以進行偏移,并根據以下位置進行解釋:0 表示相對于文件的原點,1 表示相對于當前偏移量,2 表示相對于結束。它返回新的偏移量和錯誤(如果有)。未指定對使用 O_APPEND 打開的文件執行 Seek 的行為。
如果 f 是一個目錄,則 Seek 的行為因操作系統而異。您可以在類Unix操作系統上查找目錄的開頭,但在Windows上則不然。
因此,使用截斷,您可以將文件大小更改為設置的大小,使用see,您可以讀取文件到一定的偏移量。
- 2 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消