首页 > 代码库 > 4.2 access函数实例

4.2 access函数实例

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     else11         printf("read access OK\n");12     if (open(argv[1], O_RDONLY) < 0)13         err_ret("open error for %s", argv[1]);14     else15         printf("open for reading OK\n");16     exit(0);17 }