#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;