linux C函數之access函數的用法

1.函數功能:api

檢查調用進程是否能夠對指定的文件執行某種操做。微信

2.函數原型:ide

1)函數頭文件函數


[cpp] view plain copy測試

  1. #include <stdio.h>  url

  2. #include <unistd.h>  spa



2)函數.net

[cpp] view plain copyblog

  1. 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說明

[cpp] view plain copy

  1. R_OK      測試讀許可權  

  2. W_OK      測試寫許可權  

  3. X_OK      測試執行許可權  

  4. F_OK      測試文件是否存在  

3.函數實例

[cpp] view plain copy

  1. #include <stdio.h>  

  2. #include <unistd.h>  

  3.   

  4. int main(void)  

  5. {  

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

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

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

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

  10. }  

相關文章
相關標籤/搜索