文件权限管理&access

概述

ls -l打印出的权限列表
(1)123456789一共9位,3个一组。第一组三个表示文件的属主(owner、user)对该文件的可读、可写、可执行权限;第2组3个位表示文件的属主所在的组(group)对该文件的权限;第3组3个位表示其他用户(others)对该文件的权限。
(2)属主就是这个文件属于谁,一般来说文件创建时属主就是创建这个文件的那个用户。但是我们一个文件创建之后还可以用chown命令去修改一个文件的属主,还可以用chgrp命令去修改一个文件所在的组。

正文

函数

函数原型

int access(const char *path, int amode);

参数

参数pathname为需要检测的文件路径名
参数mode:需要测试的操作模式
R_OK 测试读许可权
W_OK 测试写许可权
X_OK 测试执行许可权
F_OK 测试文件是否存在

返回值

成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EINVAL: 模式值无效
EACCES: 文件或路径名中包含的目录不可访问
ELOOP : 解释路径名过程中存在太多的符号连接
ENAMETOOLONG:路径名太长
ENOENT:路径名中的目录不存在或是无效的符号连接
ENOTDIR: 路径名中当作目录的组件并非目录
EROFS: 文件系统只读
EFAULT: 路径名指向可访问的空间外
EIO:输入输出错误
ENOMEM: 不能获取足够的内核内存
ETXTBSY:对程序写入出错

测试代码

int main(int argc,char *argv)
{
    int ret = -1;
    ret = access(MYFILE,F_OK);/*file exist?*/
    if(ret)
    {
        perror("access ");
        return -1;
    }
    printf("file F_OK\r\n");

    ret = access(MYFILE,R_OK);/*file read?*/
    if(ret)
        perror("access ");
    else
        printf("file R_OK\r\n");

    ret = access(MYFILE,W_OK);/*file write?*/
    if(ret)
        perror("access ");
    else
        printf("file W_OK\r\n");

    ret = access(MYFILE,X_OK);/*file execute?*/
    if(ret)
        perror("access ");
    else
        printf("file X_OK\r\n");

    return 0;
}

这里写图片描述
因为是在共享文件夹下面执行的操作所以是所有权限都可以实现

参考

http://blog.csdn.net/tigerjibo/article/details/11712039

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值