int access(const char *filenpath, int mode);
功 能: 確定文件或文件夾的訪問權限。
mode,要判斷的模式
在頭文件unistd.h中的預定義如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具體含義如下:
R_OK 只判斷是否有讀權限
W_OK 只判斷是否有寫權限
X_OK 判斷是否有執行權限
F_OK 只判斷是否存在
?
file/access.c
1 #include "apue.h" 2 #include <fcntl.h> 3 int 4 main(int argc, char *argv[]) 5 { 6 if (argc != 2) 7 err_quit("usage: a.out <pathname>"); 8 if (access(argv[1], R_OK) < 0) 9 err_ret("access error for %s", argv[1]); 10 else 11 printf("read access OK\n"); 12 if (open(argv[1], O_RDONLY) < 0) 13 err_ret("open error for %s", argv[1]); 14 else 15 printf("open for reading OK\n"); 16 exit(0); 17 }