gpt4 book ai didi

go - 以 os.O_APPEND|os.O_WRONLY 模式写入文件是否安全?

转载 作者:IT王子 更新时间:2023-10-29 02:09:33 26 4
gpt4 key购买 nike

我有一个向文件追加一行的 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

关于go - 以 os.O_APPEND|os.O_WRONLY 模式写入文件是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com