C语言中的acess函数

来源:互联网 发布:im即时通讯源码java 编辑:程序博客网 时间:2024/06/13 13:00

函数声明:int   access(const   char   *filename,   int   amode); 
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 
这个函数还可以检查其它文件属性: 

这个熟悉Linux操作系统应该了解,用三个字节表示三种权限,

第0个字节:是否有可执行权限,有为1,没有为0

第1个字节:是否有可写权限。有为1,没有为0

第2个字节:是否有可读权限。有为1,没有为0

如文件只具有可读权限则三个字节为100,对应十进制4,

如文件具有可读可执行权限则二进制为101,十进制为5
06     100  检查读写权限 

05     101  检查读,执行权限
04     100  检查读权限

03     011  检查写,执行权限 
02     010  检查写权限 
01     001  检查执行权限 
00     000  检查文件的存在性

存在对应权限的权限返回0,不存在返回-1

C函数
  函数名: access 
  功 能: 确定文件的访问权限 
  用 法: int access(const char *filename, int amode);
  程序例: 

  1. #include <stdio.h>
    #inclide <dir.h>
    #inclide <io.h>
    int main()
    {
        FILE *fp;
        int iMkdirState = 0;
        int iFileAuority = -1;
        iMkdirState = mkdir("//home//yanglei//i");
        iFileAuority = access("//home//yanglei//i",0);
        if(-1 == iMkdirState)
        {
            printf("/创建文件夹失败\n");
        }
        else if(0 == iMkdirState)
        {
            printf("创建文件夹成功\n");
        }
       
        iFileAuority = access("//home/yanglei//i",0);
        printf("0 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home/yanglei//i",1);
        printf("1 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home//yanglei/i",2);
        printf("2 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home//yanglei//i",3);
        printf("3 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home//yanglei//i",4);
        printf("4 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home//yanglei//i",5);
        printf("5 iFileAuthority=%d\n",iFileAuority);
       
        iFileAuority = access("//home//yanglei//i",6);
        printf("6 iFileAuthority=%d\n",iFileAuority);
        return 0;
    }
  2. 执行完的效果图:
  3. Linux下创建的文件权限
  4. 这里要说明的是:
  5. 比如现在文件是具有读和执行的权限的,二进制为101,那么此时用acess函数对应的权限是,传入5,4,1,0都是返回的0,即有相应的权限
        
原创粉丝点击