c语言创建文件、文件夹、判断文件内容是否为空

linux c开发一定会遇到创建文件,废话少说,代码如下,不足之处请多指教!

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int isFileExisted(const char *pathname){
	if(access(pathname,F_OK) == 0){
		return true;
	}
	return false;
}

void makeDirectory(const char *path){
	if((strcmp(path,".") == 0) || (strcmp(path,"/")==0))
		return ;
	if(isFileExisted(path))
		return ;
	else{
		char *duppath = strdup(path);
		const char *dir_name = dirname(duppath);
		makeDirectory(dir_name);
		free(duppath);
	}
	if(mkdir(path,0766) < 0){
		perror("mkdir");
		exit(1);
	}
	return;
}  

int createFile(const char*filename,int mode){
	if(creat(filename,mode) < 0){
		if(errno == ENOENT){
			char *dup_filename=strdup(filename);
			char *dir = dirname(dup_filename);
			makeDirectory(dir);
			free(dup_filename);
			creat(filename,mode);
		}
		return false;
	}
	return true;
}


int isFileNull(const char *filename){
	FILE *fp = fopen(filename,"r");
	if(fp == NULL)
		return -1;	
	int val = 0;
	char ch = fgetc(fp);
	if(ch == EOF)
		val = 1;
	fclose(fp);
	return val;
}

补充:

dirname函数和basename函数,使用man 3 dirname 查看。

你可能感兴趣的:(c语言创建文件、文件夹、判断文件内容是否为空)