檢查檔案是否可以讀、寫、執行、存在---access
標頭檔:
unistd.h
fcntl.h
函式:
int access(const char *pathname, int mode);
mode 說明
R_OK 测試檔案是否可讀
W_OK 测试檔案是否可寫
X_OK 测试檔案是否執行
F_OK 测试檔案是否存在
返回值:
成功執行時,返回0。失败返回-1。
errno被設為以下的某個值
EINVAL: 模式值無效
EACCES: 文件或路徑名中包含的目錄不可訪問
ELOOP : 路徑名過程中存在太多的符路連接
ENAMETOOLONG:路徑名太長
ENOENT: 路徑名中的目錄不存在或是無效的符號連接
ENOTDIR: 路徑名中當作目錄的組並非目錄
EROFS: 文件系統只可讀
EFAULT: 路徑名指向可訪問的空間外
EIO: 输入输出错误 輸入輸出錯誤
ENOMEM: 不能獲取足夠的內核內存
ETXTBSY:對程序寫入出錯
ref:
1. Linux系統調用--access函數詳解
2. access函數使用方法+例子
沒有留言:
張貼留言