删除文件的权限? C编程

时间:2015-03-16 02:46:54

标签: c linux unix permissions chmod

使用chmod我可以分配权限,如

chmod(file, S_IRUSR);

有没有办法只取走用户的阅读权限?

我试过

chmod(file, !S_IRUSR);

和     chmod(文件,-S_IRUSR);

都没有工作。

1 个答案:

答案 0 :(得分:1)

您无法使用chmod(2)更改单个权限位,就像使用命令行实用程序一样。您只能设置一组新的权限。

要实施更改,您需要先使用stat(2)读取更改,然后在st_mode字段中切换所需的位,然后使用chmod(2)进行设置。

以下代码将删除清除S_IRUSR的{​​{1}}位,并设置test.txt位。 (为简洁起见,省略了错误检查。)

S_IXUSR