考虑以下 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)
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消