#include<unistd.h>
int access(const char* pathname, int mode);
参数介绍:
pathname 是文件的路径名+文件名
mode:指定access的作用,取值如下
-
F_OK 值为0,判断文件是否存在
-
X_OK 值为1,判断对文件是可执行权限
-
W_OK 值为2,判断对文件是否有写权限
-
R_OK 值为4,判断对文件是否有读权限
-
注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_OK
返回值:成功0,失败-1
#include"stdio.h" #include"unistd.h" #include "string.h" #define fileNAME1 "test" #define fileNAME2 "./liang" int main(void) { char name[BUFSIZ];//文件名字 int flag = 1;//退出标志,0 exit printf("\t\t\t程序开始\n"); printf("请输入要检查的文件(可包含路径,EOF退出):"); scanf("%s",name); if( strcmp(name,"EOF") == 0 ){ flag = 0; } while(flag){ if(access(name,F_OK)==0){ printf("文件存在\n"); if(access(name,R_OK|W_OK)==0){ printf("文件可读可写\n"); }else printf("文件不可读或不可写\n"); if(access(name,X_OK)==0){ printf("文件可执行\n"); }else printf("文件不可执行\n"); }else printf("文件不存\n"); printf("\n请输入要检查的文件(可包含路径,EOF退出):"); scanf("%s",name); if( strcmp(name,"EOF") == 0 ){ flag = 0; } }//while printf("\t\t\t程序结束\n"); return 0;