C语言中如何检查一个文件是否存在以及权限等信息

简介:

用函数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

  1. #include <stdio.h>  
  2. int main()  
  3. {  
  4.     printf ("%d",access("test.db",0));  
  5. }  
#include <stdio.h>
int main()
{
	printf ("%d",access("test.db",0));
}


测试程序

  1. #define __WINDOWS__     // windows系统使用  
  2. //#define __LINUX__     // linux系统下使用  
  3.   
  4. #ifdef __WINDOWS__  
  5. #include <io.h>  
  6. #endif  
  7.   
  8. #ifdef __LINUX__  
  9. #include <unistd.h>  
  10. #endif  
  11.   
  12.   
  13. #include <stdio.h>  
  14. #include <stdlib.h>  
  15.   
  16.   
  17. #define FILE_NAME  "test.db"  
  18.   
  19. int main( void )  
  20. {  
  21.     /* Check for existence */  
  22.     if( (access(FILE_NAME, 0 )) != -1 )  
  23.     {  
  24.         printf( "File [ %s ] exists\n", FILE_NAME);  
  25.         /* Check for write permission */  
  26.         if( (_access(FILE_NAME, 2 )) != -1 )  
  27.         {  
  28.             printf( "File [ %s ] has write permission\n", FILE_NAME);  
  29.         }  
  30.         else  
  31.         {  
  32.             printf( "File [ %s ] has not write permission\n", FILE_NAME);  
  33.         }  
  34.     }  
  35.     else  
  36.     {  
  37.         printf( "File [ %s ] don't exists\n", FILE_NAME);  
  38.     }  
  39. }  


转载:http://blog.csdn.net/gatieme/article/details/25598433

目录
相关文章
|
9天前
|
Linux C语言
C语言获取文件长度
C语言获取文件长度
|
24天前
|
安全 算法 程序员
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
【C/C++ 文件操作】深入理解C语言中的文件锁定机制
31 0
|
1月前
|
C语言
C语言对文件的输入输出
C语言对文件的输入输出
17 0
C4.
|
1月前
|
存储 程序员 数据库
C语言顺序读写数据文件
C语言顺序读写数据文件
C4.
13 0
|
1月前
|
存储 C语言
C语言-打开与关闭文件
C语言-打开与关闭文件
19 1
|
1月前
|
存储 程序员 Linux
6.C语言:用fopen函数关闭数据文件
6.C语言:用fopen函数关闭数据文件
20 1
|
1月前
|
C语言
5.C语言:用fopen函数打开数据文件
5.C语言:用fopen函数打开数据文件
11 0
|
10月前
|
存储 缓存 C语言
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(下)
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(下)
|
10月前
|
存储 C语言
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(中)
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(中)
|
10月前
|
编译器 数据库 C语言
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(上)
【C语言进阶】文件的顺序读写、随机读写、文本文件和二进制文件、文件读取结束的判定以及文件缓冲区相关知识(上)