gpt4 book ai didi

C - 调用 chmod 函数导致意外结果

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:22 24 4
gpt4 key购买 nike

我正在编写一个需要能够设置文件权限的程序,但出于某种原因,chmod 的行为与我期望的不同。对于几个测试,我尝试创建两个不同的文件(fileOne.txt 和 fileTwo.txt)。 fileOne.txt 应将权限设置为 600,而 fileTwo.txt 应将权限设置为 777。

运行我的程序结果如下:

fileOne.txt having permissions set to ---x-wx--T
fileTwo.txt having permissions set to -r----x--t

??什么?

下面是我的代码。我的 printf 的结果如预期的那样,(600, 777),那么为什么 chmod 不喜欢这样呢?

printf("chmod = %d\n", (int)getHeader.p_owner * 100 + (int)getHeader.p_group * 10 + (int)getHeader.p_world);
chmod(getHeader.file_name, (int)getHeader.p_owner * 100 + (int)getHeader.p_group * 10 + (int)getHeader.p_world);

最佳答案

UNIX 文件系统权限是八进制而不是十进制。因此,将它乘以 10010 会得到意想不到的结果。

关于C - 调用 chmod 函数导致意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15193236/

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