为了账号安全,请及时绑定邮箱和手机立即绑定

关于创建文件的权限,os.FileMode 的哪个组合对应于 fopen 中的 `a`?

关于创建文件的权限,os.FileMode 的哪个组合对应于 fopen 中的 `a`?

Go
沧海一幻觉 2021-11-15 16:04:08
考虑以下 Golang 中的短程序,它只是尝试写入一个文件。package mainimport "io/ioutil"import "os"func main() {    ioutil.WriteFile("/tmp/FooBar", []byte("Hello World"), os.ModeAppend)}运行这个程序后,我得到一个具有以下权限的文件。---------- 1 merlin sudo 5 Oct 12 15:02 /tmp/FooBar权限基本上无法使用。如果我运行等效的 C 程序。#include <stdio.h>int main(){    FILE* foo = fopen("/tmp/BarFoo", "a");    fprintf(foo, "Hello World");    fclose(foo);}然后我得到一个看起来像这样的文件,这是更可取的。-rw-r--r-- 1 merlin sudo 11 Oct 12 15:10 /tmp/BarFooGolang程序中标志的正确组合是什么才能生成与 C 程序具有相同权限的文件?我查看了FileMode 文档,但没有看到任何好的候选者。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

由于FileMode包括新创建文件的权限位,您需要提供这些:

ioutil.WriteFile("/tmp/FooBar", []byte("Hello World"), os.ModeAppend | 0644)


查看完整回答
反对 回复 2021-11-15
  • 1 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信