C语言:access函数的使用

  • Post author:
  • Post category:其他



C语言:access函数的使用



一、access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在).



二、需要包含#include<unistd.h>


三、参数和返回值

int access(const char *pathname,int mode)

参数:

pathname:表示要测试的文件的路径

mode:表示测试的模式可能的值有:

R_OK:是否具有读权限

W_OK:是否具有可写权限

X_OK:是否具有可执行权限

F_OK:文件是否存在

返回值:若测试成功则返回0,否则返回-1


四、实际测试



1、测试c代码

#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
/*
access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在). 
 int access(const char *pathname,int mode)
 参数:
 pathname:表示要测试的文件的路径
 mode:表示测试的模式可能的值有:
 R_OK:是否具有读权限
 W_OK:是否具有可写权限
 X_OK:是否具有可执行权限
 F_OK:文件是否存在
 返回值:若测试成功则返回0,否则返回-1
*/
int main(int argc,char *argv[]){
   int rt_value;
   if(argc<2){
      printf("Usage:%s filename\n",argv[0]);
      exit(1);
   }
   rt_value=access(argv[1],R_OK);
   if(rt_value==0)
         printf("File:%s can read   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s can't read  rt_value=%d \n",argv[1],rt_value);

   rt_value=access(argv[1],W_OK);
   if(rt_value==0)
         printf("File:%s can write   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s can't write  rt_value=%d \n",argv[1],rt_value);

   rt_value=access(argv[1],X_OK);
   if(rt_value==0)
         printf("File:%s can execute   rt_value=%d\n",argv[1],rt_value);
    else
           printf("File:%s can't execute  rt_value=%d \n",argv[1],rt_value);

   rt_value=access(argv[1],F_OK);
   if(rt_value==0)
         printf("File:%s   exist   rt_value=%d\n",argv[1],rt_value);
    else
         printf("File:%s not exist  rt_value=%d \n",argv[1],rt_value);

  return 0;
}

2、编译执行



版权声明:本文为qq_37858386原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。