我想为文件预先分配空间。如何增大文件大小?(*os.File).Seek(size,os.SEEK_SET)
or
(*os.File).Truncate(size)两者之间有什么区别?
2 回答
有只小跳蛙
TA贡献1824条经验 获得超8个赞
LEATH
TA贡献1936条经验 获得超6个赞
截断
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 关注
- 90 浏览
添加回答
举报
0/150
提交
取消