Linux access函數(shù)具體應(yīng)用舉例說(shuō)明
這兩天在學(xué)如何寫個(gè)linux下的shell才明白原來(lái)dos下的command.COM也是個(gè)shell這當(dāng)然要用到c的很多庫(kù)函數(shù) access(判斷是否具備存取文檔的權(quán)限)。
Linux access函數(shù)功能描述: 檢查調(diào)用進(jìn)程是否可以對(duì)指定的文件執(zhí)行某種操作。
Linux access函數(shù)用法:
#include
#include
int access(const char *pathname, int mode);
Linux access函數(shù)參數(shù):
pathname: 需要測(cè)試的文件路徑名。
mode: 需要測(cè)試的操作模式,可能值是一個(gè)或多個(gè)R_OK(可讀?), W_OK(可寫?), X_OK(可執(zhí)行?) 或 F_OK(文件存在?)組合體。
Linux access函數(shù)返回說(shuō)明:
成功執(zhí)行時(shí),返回0。失敗返回-1,errno被設(shè)為以下的某個(gè)值
EINVAL: 模式值無(wú)效
EACCES: 文件或路徑名中包含的目錄不可訪問(wèn)
ELOOP : 解釋路徑名過(guò)程中存在太多的符號(hào)連接
ENAMETOOLONG:路徑名太長(zhǎng)
ENOENT:路徑名中的目錄不存在或是無(wú)效的符號(hào)連接
ENOTDIR: 路徑名中當(dāng)作目錄的組件并非目錄
EROFS: 文件系統(tǒng)只讀
EFAULT: 路徑名指向可訪問(wèn)的空間外
EIO:輸入輸出錯(cuò)誤
ENOMEM: 不能獲取足夠的內(nèi)核內(nèi)存
ETXTBSY:對(duì)程序?qū)懭氤鲥e(cuò)
Linux access函數(shù)例子:
- /* test.c */ /* test.c */
- #include
- #include
- #include
- #include
- int main(int argc, char *argv[])
- {
- if (argc
- #include
- #include
- #include
- #include
- int main(int argc, char *argv[])
- {
- if (argc
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/93782/showart_1915418.html
【編輯推薦】