函数chmod

chmod函数是用来更改文件权限的。函数原型和依赖的头文件如下:

#include <sys/stat.h>

int chmod(const char *pathname, mode_t mode);
int fchmod(int fd, mode_t mode);

chmod是对指定的文件进行操作,而fchmod则是对已经打开的文件进行操作。所以它们的第一个参数不一样。下面给出一个实例。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
    int fd = open("a",O_RDWR);
    if (-1 == fd)
    {
       perror("open fail");
       exit(1);
    }

    if(-1 == fchmod(fd,0777))
    {
        perror("fchmod fail");
        exit(1);
    }

    if (-1 == chmod("b",0777))
    {
       perror("fchmod fail");
       exit(1);
    }
    
    close(fd);
    return 0;
}

运行结果如下所示:

注意到文件的时间并没有改变,这是因为chmod函数更新的是i节点最近一次被更改的时间,而ls命令列出的是最后一次修改文件内容的时间。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券