用函数access,头文件是io.h(linux下使用unistd.h
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);
- }
- }
转载:http://blog.csdn.net/gatieme/article/details/25598433