函数声明:int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
这个函数还可以检查其它文件属性:
这个熟悉Linux操作系统应该了解,用三个字节表示三种权限,
第0个字节:是否有可执行权限,有为1,没有为0
第1个字节:是否有可写权限。有为1,没有为0
第2个字节:是否有可读权限。有为1,没有为0
如文件只具有可读权限则三个字节为100,对应十进制4,
如文件具有可读可执行权限则二进制为101,十进制为5
06 100 检查读写权限
05 101 检查读,执行权限
04 100 检查读权限
03 011 检查写,执行权限
02 010 检查写权限
01 001 检查执行权限
00 000 检查文件的存在性
存在对应权限的权限返回0,不存在返回-1
C函数
函数名: access
功 能: 确定文件的访问权限
用 法: int access(const char *filename, int amode);
程序例:
-
#include <stdio.h>
#inclide <dir.h>
#inclide <io.h>
int main()
{
FILE *fp;
int iMkdirState = 0;
int iFileAuority = -1;iMkdirState = mkdir("//home//yanglei//i");
iFileAuority = access("//home//yanglei//i",0);if(-1 == iMkdirState)
{
printf("/创建文件夹失败\n");
}
else if(0 == iMkdirState)
{
printf("创建文件夹成功\n");
}
iFileAuority = access("//home/yanglei//i",0);
printf("0 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home/yanglei//i",1);
printf("1 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home//yanglei/i",2);
printf("2 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home//yanglei//i",3);
printf("3 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home//yanglei//i",4);
printf("4 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home//yanglei//i",5);
printf("5 iFileAuthority=%d\n",iFileAuority);
iFileAuority = access("//home//yanglei//i",6);
printf("6 iFileAuthority=%d\n",iFileAuority);return 0;
} -
执行完的效果图:
- Linux下创建的文件权限
- 这里要说明的是:
- 比如现在文件是具有读和执行的权限的,二进制为101,那么此时用acess函数对应的权限是,传入5,4,1,0都是返回的0,即有相应的权限