如果open打开文件时,指定了O_APPEND,即“追加”模式,那么lseek的向前移动指针的操作无法凑效,包括lseek(fd, 负数, SEEK_CUR)和lseek(fd, 小于当前偏移的位置, SEEK_SET)。这两种写法未必会返回失败,但是下次write时,仍然以“追加"模式写在文件尾部。

解决方法是,open时,去掉O_APPEND。

05-11 22:17