gpt4 book ai didi

ubuntu - 将权限设置为 777,生成的文件为 775

转载 作者:行者123 更新时间:2023-12-04 18:29:18 25 4
gpt4 key购买 nike

我正在尝试将字符串写入文件,并将文件的权限设置为 777。生成的文件为空白,权限为 775。模式掩码似乎是正确的,当我使用 access() 检查时,它返回 0 . 我可以将文件 chmod 为 777(不使用 sudo)。这是怎么回事?

运行 ubuntu 14.10。硬盘是ext3/4。

if (argc == 1) {
int fd = open ("sampleFile", O_CREAT , S_IRWXU | S_IRWXG | S_IRWXO);
int writ = 0xDEADBEEF;

if (fd != -1) {
char str [] = "My permission should be set to 777.";
writ = write (fd, &str, (int)strlen (str));
//writ = access ("sampleFile", W_OK);
close (fd);

printf ("(%o) %s\n", writ, str);
return 0;
}

else {
printf ("Couldn't make sampleFile in pwd.\n");
return 1;
}
}

最佳答案

你有两个问题:

  • write() 的第二个参数“必须包括以下访问模式之一:O_RDONLYO_WRONLYO_RDWR”。更改O_CREATO_CREAT | O_WRONLY允许写入文件。
  • 创建文件的模式由您的umask 修改。 .您的 umask大概是 002 . (umask 中的 002 可防止您意外创建全局可写文件。)您可以使用 fchmod创建后更改权限。: fchmod(fd, S_IRWXU | S_IRWXG | S_IRWXO)
  • 关于ubuntu - 将权限设置为 777,生成的文件为 775,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357616/

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