登录
首页 >  Golang >  Go问答

写入文件时是否安全,使用 os.O_APPEND|os.O_WRONLY 模式?

来源:stackoverflow

时间:2024-03-07 12:57:19 481浏览 收藏

今天golang学习网给大家带来了《写入文件时是否安全,使用 os.O_APPEND|os.O_WRONLY 模式?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我有一个 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 是否使此操作安全。是否可以保证无论发生什么情况(即使进程在写入过程中被关闭)现有的文件内容都不能被删除?


解决方案


os 包是系统调用的包装器,因此您可以得到操作系统提供的保证。在这种情况下,Linux 操作系统保证使用 O_APPEND 标志打开的文件将被原子处理 http://man7.org/linux/man-pages/man2/open.2.html

理论要掌握,实操不能落!以上关于《写入文件时是否安全,使用 os.O_APPEND|os.O_WRONLY 模式?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>