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 }