gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:55:15 25 4
gpt4 key购买 nike

考虑以下 Golang 中的短程序,它只是尝试写入一个文件。

package main

import "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/BarFoo

Golang 程序中生成具有与 C 程序相同权限的文件的正确标志组合是什么?

我看过 FileMode documentation但没有看到任何好的候选人。

最佳答案

由于 FileMode 包含新创建文件的权限位,因此您需要提供:

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

关于go - 关于创建文件的权限,os.FileMode 的哪个组合对应于 fopen 中的 `a`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33091071/

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