【c&c++】 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、编译执行

 

 

 

posted @ 2023-02-10 15:01  opensmarty  阅读(502)  评论(0编辑  收藏  举报