用函数access,头文件是io.h(linux下使用unistd.h
int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
这个函数还可以检查其它文件属性:
06 检查读写权限
04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在性
而这个就算这个文件没有读权限,也可以判断这个文件存在于否
测试程序
int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
这个函数还可以检查其它文件属性:
06 检查读写权限
04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在性
在UNIX和VC下实验成功。
好处是 fopen(..,"r")不好,当无读权限时一不行了。而这个就算这个文件没有读权限,也可以判断这个文件存在于否
存在返回0,不存在返回-1
#include <stdio.h>int main(){ printf ("%d",access("test.db",0));}
测试程序
#define __WINDOWS__ // windows系统使用//#define __LINUX__ // linux系统下使用#ifdef __WINDOWS__#include <io.h>#endif#ifdef __LINUX__#include <unistd.h>#endif#include <stdio.h>#include <stdlib.h>#define FILE_NAME "test.db"int main( void ){ /* Check for existence */ if( (access(FILE_NAME, 0 )) != -1 ) { printf( "File [ %s ] exists\n", FILE_NAME); /* Check for write permission */ if( (_access(FILE_NAME, 2 )) != -1 ) { printf( "File [ %s ] has write permission\n", FILE_NAME); } else { printf( "File [ %s ] has not write permission\n", FILE_NAME); } } else { printf( "File [ %s ] don't exists\n", FILE_NAME); }}