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

上一篇:asp.net ajax检查用户名是否存在代码


下一篇:ASP.NET MVC 2.0 中文正式版发布