我最近尝试os.Truncate
在将修改后的版本重新写入文件之前使用参数 0 来清除文件的内容(我知道这是一种非常不安全的做法,但文件的内容对我来说并不重要)。
令我震惊的是,Truncate 并没有重置文件的光标,所以当我写回文件时,我最终得到了一个以一堆空字节为前缀的文件(对应于之前内容的大小),除非我使用file.Seek(0, 0)
预先。
所以我的问题是:这是语言的错误,是在实现该功能的过程中被遗忘的东西,还是有意为之,出于某种神秘的原因,这是一种理想的行为?那个神秘的原因可能是什么?
我正在使用 go 版本 go1.3.3 linux/amd64
胡子哥哥
相关分类