一、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);elseprintf("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);elseprintf("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);elseprintf("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);elseprintf("File:%s not exist rt_value=%d \n",argv[1],rt_value);return 0;
}