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     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 }
posted @ 2014-07-17 10:18  paullam  阅读(367)  评论(0编辑  收藏  举报