标签: c linux unix permissions chmod
使用chmod我可以分配权限,如
chmod(file, S_IRUSR);
有没有办法只取走用户的阅读权限?
我试过
chmod(file, !S_IRUSR);
和 chmod(文件,-S_IRUSR);
都没有工作。
答案 0 :(得分:1)
您无法使用chmod(2)更改单个权限位,就像使用命令行实用程序一样。您只能设置一组新的权限。
chmod(2)
要实施更改,您需要先使用stat(2)读取更改,然后在st_mode字段中切换所需的位,然后使用chmod(2)进行设置。
stat(2)
st_mode
以下代码将删除清除S_IRUSR的{{1}}位,并设置test.txt位。 (为简洁起见,省略了错误检查。)
S_IRUSR
test.txt
S_IXUSR