函数chmod

2019-08-01 15:21:21 浏览数 (1)

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

代码语言:javascript复制
#include <sys/stat.h>

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

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

代码语言:javascript复制
#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 人点赞