Linux系统编程12-chmod

在 Linux 中,chmod 函数用于更改文件或目录的访问权限。

#include <sys/stat.h>
int chmod(const char *pathname, mode_t mode);
    修改文件的权限
    参数:
        - pathname: 需要修改文件的路径
        - mode: 需要修改的权限值,八进制的数
    返回: 0 成功 , -1 失败

权限模式是一个八进制的数,它包含了三种权限(读、写、执行)分别对应的值为 4、2、1。因此,它们的组合可以得到不同的权限值,例如:

  • 只读权限:0444S_IRUSR | S_IRGRP | S_IROTH
  • 只写权限:0222S_IWUSR | S_IWGRP | S_IWOTH
  • 可执行权限:0111S_IXUSR | S_IXGRP | S_IXOTH
  • 读写权限:0666S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
  • 所有权限:0777S_IRWXU | S_IRWXG | S_IRWXO

chmod 函数可以更改指定路径下的文件或目录的访问权限,权限的改变会影响该文件或目录的用户、用户组、其他用户的访问权限。

需要注意的是,chmod 函数只能更改由调用进程拥有的文件或目录的权限,也就是说,如果当前进程没有该文件的所有权,则无法更改该文件的权限。

实例: 修改文件的权限

chmod.c

#include <sys/stat.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int ret = chmod("english.txt", 0775);
    if (ret == -1)
    {
        perror("chmod err");
        return -1;
    }

    return 0;
}
posted @ 2022-10-14 22:10  言叶以上  阅读(57)  评论(0编辑  收藏  举报