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

#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);
	}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-07-31 01:35:29

C语言,如何检查文件是否存在和权限的信息的相关文章

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

linux下的c语言编程删除文件夹

刚刚在学习开始做新项目的时候,学长布置了一项任务,就是在给定一个目录下,要将这个目录下一个星期之前的目录包括里面的文件全部删除,只保留这一个星期内的.百度了好久的资料,终于完成,记录一下防止忘记.(注:文件夹名称默认为日期格式,如20140716) #include<dirent.h> #include<sys/types.h> #include<string.h> #include<stdlib.h> #include<unistd.h> #i

oc语言复制视频文件

1 void copyFile() 2 { 3 NSString *home=NSHomeDirectory(); 4 NSString *path=[NSString stringWithFormat:@"%@/desktop/oc.mp4",home]; 5 NSString *path1=[NSString stringWithFormat:@"%@/desktop/oc1.mp4",home]; 6 NSFileHandle *handle=[NSFileH

centos 检查文件是否被串改

如果没安装md5sum工具 yum install isomd5sum 检查文件是否被串改 #!/bin/bash check_dir="/boot /etc /usr" for i in $check_dir do find $i -type f -exec md5sum {} \; |sort > /server/md5$i.new diff /server/md5$i.md5 /server/md5$i.new >> /server/log/md5.log do

C语言样式的文件操作函数

使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: 1 //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 2 FILE* fd = fopen(filename.c_str(), oflag); 2.写文件的函数原型: size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream ); 其中buffer是需要向文件中写入的内容在内存中的首地址指针,size是待写入

apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

在APP开发工程中,有时候我们可以通过APK反编译来借鉴下别人的思想,但是切不可用于不正当的用途!了解反编译的程序员也不必担心,可以多去了解下APP安全加密技术,这样就不用担心自己的APP被反编译了!当然本文的目的只是分享. apk反编译生成程序的源代码和图片.XML配置.语言资源等文件. 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p/android-apktool/downloads/list 2.解压 apktool,打开DOS命令行工具

【ruby项目,语言提交检查(一)】如何快速学习ruby ?

如何快速学习ruby ? 学习语言最快的思路. 变量,常量,变量类型,操作符, 逻辑语句如 if, else, switch, for, foreach, do while, break, 等等.要学的语言与这些命令相似的命令是什么?了解使用方法即可. 之后,如果是面向对象,就要了解一下关于对象的操作了. 有没有函数库,一般语言都有的.输出命令函数,操作数组,操作字符串,对象属性 操作文本文件 还有一个就是创建对象,类,数组这样的. 好了,成了会了上面的,你还没有学完此语言,但你是可以用此语言做

C语言库函数--操作文件

//C库函数读取文件的代码 I/O缓冲机制 C语言库函数写文件都是写在内存中,然后一次写入磁盘.提高了效率. 读写文件,不对系统进行操作,一般采用C语言库函数.移植可以在任何可以对C支持的操作系统,而不用修改. FILE *fopen(const char *path, const char *mode); mode 参数: r    Open text file for reading. The stream is positioned at the beginning of the file

C 语言之预处理 ---------文件包含

文件包含是C预处理程序的另一个重要功能.文件包含命令行的一般形式为: #include"文件名" 在前面我们已多次用此命令包含过库函数的头文件.例如: #include"stdio.h" #include"math.h" 文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行, 从而把指定的文件和当前的源程序文件连成一个源文件. 在程序设计中,文件包含是很有用的. 一个大的程序可以分为多个模块,由多个程序员分别编程. 有些公用的符号常量或宏