头文件:unistd.h
功 能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
参数说明:
filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限
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 只判断是否存在
access函数程序范例(C语言中)
/*int access(const char *pathname, int mode);
此函数用于检测某个指定路径的文件(第一个参数 pathname),是否符合第二个参数选项(F_OK(是否是存在的文件),R_OK(是否可读),W_OK(是否可以写入),X_OK(是否可以运行);当参数1满足参数2条件时候返回0,不满足返回-1;(此处刚刚好和字符串比对返回值类似)*/
//参考代码如下:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
char * myboolean(int p);
int main(int argc,char **argv)
{
int a,b,c,d;
a=access(argv[1],F_OK);
b=access(argv[1],R_OK);
c=access(argv[1],W_OK);
d=access(argv[1],X_OK);
printf("存在?%s,可读?%s,可写?%s,可运行?%s\n",myboolean(a),myboolean(b),myboolean(c),myboolean(d));
exit(0);
}
char * myboolean(int p)/*此函数为了方便结果而定义的布尔运算*/
{
char *f =NULL;
if(p<0)
return f="否";
if(p==0)
return f="是";
}
/***********************************************************************************************/