1. 程式人生 > >linux C函式之access函式的用法【轉】

linux C函式之access函式的用法【轉】

1.函式功能:

檢查呼叫程序是否可以對指定的檔案執行某種操作。

2.函式原型:

1)函式標頭檔案

  1. #include <stdio.h>

  2. #include <unistd.h>

2)函式

int access(const char * pathname, int mode)

3)形參

pathname:需要檢測的檔案路勁名

mode:需要測試的操作模式。

4)函式返回值說明

成功執行時,返回0。失敗返回-1,errno被設為以下的某個值  EINVAL: 模式值無效  EACCES: 檔案或路徑名中包含的目錄不可訪問  ELOOP : 解釋路徑名過程中存在太多的符號連線  ENAMETOOLONG:路徑名太長  ENOENT:路徑名中的目錄不存在或是無效的符號連線  ENOTDIR: 路徑名中當作目錄的元件並非目錄  EROFS: 檔案系統只讀  EFAULT: 路徑名指向可訪問的空間外  EIO:輸入輸出錯誤  ENOMEM: 不能獲取足夠的核心記憶體  ETXTBSY:對程式寫入出錯

5)mode說明

  1. R_OK 測試讀許可權

  2. W_OK 測試寫許可權

  3. X_OK 測試執行許可權

  4. F_OK 測試檔案是否存在

3.函式例項

  1. #include <stdio.h>

  2. #include <unistd.h>

  3. int main(void)

  4. {

  5. if(access("test.txt", R_OK)==0) printf("READ OK\n");

  6. if(access("test.txt", W_OK)==0) printf("WRITE OK\n");

  7. if(access("test.txt", X_OK)==0) printf("EXEC OK\n");

  8. if(access("test.txt", F_OK)==0) printf("File exist\n");

  9. }