我有一个Go函数,可以在文件中追加一行:
func AppendLine(p string, s string) error {
f, err := os.OpenFile(p, os.O_APPEND|os.O_WRONLY, 0600)
defer f.Close()
if err != nil {
return errors.WithStack(err)
}
_, err = f.WriteString(s + "\n")
return errors.WithStack(err)
}
我想知道标志os.O_APPEND|os.O_WRONLY
是否使此操作安全。是否可以保证无论发生什么事情(即使在编写过程中进程被关闭),现有的文件内容也无法删除?
答案 0 :(得分:1)