在我的 Go 应用程序中,而不是直接写入文件,我想写入一个临时文件,当一切都完成后,该文件被重命名为最终文件。这是为了避免在应用程序崩溃时将部分写入的内容留在文件中。
目前我使用 ioutil.TempFile,但问题是它创建的文件具有 0600 权限,而不是 0666。因此,使用典型的 umask 值可以获得 0600 权限,而不是 0644 或 0660。这不是目标文件的问题已经存在,因为我可以将临时权限修复到现有的大部分,但是如果文件不存在,那么我需要以某种方式推断当前的 umask。
我想我可以复制 ioutil.TempFile 实现以将 0666 传递到 os.OpenFile,但这听起来不太好。所以问题是有没有更好的方法?
弑天下
汪汪一只猫
相关分类