我正在编写一个需要能够设置文件权限的程序,但无论出于何种原因,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);