access()函数的用法:int access(const char *filenpath, int mode)
一、access()函数的作用
access()函数用来判断某个指定路径的文件(第一个参数 filenpath),是否符合第二个参数选项(F_OK(文件是否存在),R_OK(是否可读),W_OK(是否可以写入),X_OK(是否可以运行);当参数1满足参数2条件的时候返回0,不满足时返回-1;
二、使用
1.头文件
#include<unistd.h>
2.access()函数
int access(const char *filenpath, int mode)
参数说明:
filenpath:
文件或文件夹的路径,当前目录直接使用文件或文件夹名(使用绝对路径)
注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。
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 只判断是否存在
//注意:R_OK、W_OK、X_OK可进行或(|)运算,比如:R_OK|W_OK,即同时判断文件是否具有读写权限。
2.access()函数用法示例
#include "stdio.h"
#include "unistd.h"
int main(void)
{
if(access("/tmp/picture1.jpeg",F_OK)==0)
{
printf("文件存在\n");
}
else
printf("文件不存在\n");
if(access("/etc/profile",R_OK)==0)
{
printf("文件可读\n");
}
else
printf("文件不可读\n");
if(access("/etc/profile",W_OK)==0)
{
printf("文件可写\n");
}
else
printf("文件不可写\n");
}