保存一下; /* * ===================================================================================== * * Filename: file_op.c * * Description: 基本的文件操作 * * Version: 1.0 * Created: 2011年01月06日 16时12分33秒 * Revision: none * Compiler: gcc * * Author: 齐保元 (qby), qibaoyuan@126.com * Company: ict,gucas * * ===================================================================================== */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/dir.h> #include <sys/stat.h> #include "file_op.h" /*----------------------------------------------------------------------------- * 打开文件,返回句柄 *-----------------------------------------------------------------------------*/ FILE *file_open(char* file_name,char* mode){ FILE *fp; if((fp=fopen(file_name,mode))==NULL){ fprintf(stderr,"无法打开文件:%s./n",file_name); return NULL; } return fp; } /*----------------------------------------------------------------------------- * 返回一行 *-----------------------------------------------------------------------------*/ char* read_line (FILE *fp) { if(feof(fp)) return NULL; char ch; int max_len=100; char *line=(char*)malloc(max_len); char *new_line; int counter=0;//counter while((ch=fgetc(fp))!='/n' && !feof(fp)){ if(counter>=max_len-1){ max_len*=2; new_line=(char*)malloc(max_len); strcpy(new_line,line); free(line); line=new_line; } *(line+(counter++))=ch; } *(line+counter)='/0'; return line; } /* ----- end of function read_line ----- */ int IS_DIR(const char* path){ struct stat st; lstat(path,&st); return S_ISDIR(st.st_mode); } FILE * file_new(char *file_name){ FILE *fp=NULL; struct stat st; int res; res=lstat(file_name,&st); if(res!=0){//文件不存在,则创建 fprintf(stderr,"文件:%s 不存在/n",file_name); goto __newfile; }else{ //先删除 unlink(file_name); goto __newfile; } __newfile: fp=fopen(file_name,"w"); if(fp==NULL) fprintf(stderr,"创建文件:%s失败/n",file_name); return fp; }