chmod、chown函数的使用

博客介绍了C语言中修改文件权限和所属主、所属组的函数。chmod和fchmod函数用于改变文件权限,第二个参数需为8进制数,返回0成功,-1失败;chown、fchown和lchown函数用于改变文件所属主和所属组,需用身份号码ID指定,可通过id命令或/etc/passwd文件查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <sys/stat.h>

int chmod(const char *path, mode_t mode);

int fchmod(int fd, mode_t mode);

作用:改变指定文件的权限。第二个参数:mode必须为一个8进制数;返回值为0表示成功,-1表示失败。

//代码

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

int main(int argc, char* argv[])
{
    if(argc < 2)
    {
        printf("a.out filename\n");
        exit(1);
    }

    int ret = chmod(argv[1], 0755);  //0开头,8进制数,该方式仅仅只是修改了所属主、所有者和其它用户的权限。
    if(ret == -1)
    {
        perror("chmod");
        exit(1);
    }
    return 0;
}

#include <unistd.h>

int chown(const char *path, uid_t owner, gid_t group);

int fchown(int fd, uid_t owner, gid_t group);

int lchown(const char *path, uid_t owner, gid_t group);

作用:改变指定文件的所属主和所属组,注意所属主和所属组必须用身份号码ID指定,不能用名字。

0成功  -1失败   用户ID和组ID 可以使用id命令或者在/etc/passwd文件中查看,/etc/passwd文件:用户名:加密后的密码:用户ID:组ID:用户名和注释字段:用户家目录:终端类型

//代码

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
    if(argc < 2)
    {
        printf("a.out filename!\n");
        exit(1);
    }

    // user->ftp  group->ftp
    int ret = chown(argv[1], 116, 125);
    if(ret == -1)
    {
        perror("chown");
        exit(1);
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值