文件删除和改名 int remove(const char *pathname); int rename(const char *oldpath,const char *newpath); remove函数删除pathname指向的文件名 rename函数修改文件名称 执行成功返回0,失败返回-1,错误代码保存在变量errno中。
//remove()函数和rename() #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> int main(int arg, char * args[]) { if (arg < 1) { printf("请输入一个参数! "); return 0; } //rename file //int eno=rename(args[1],args[2]); //remove file /* remove()函数头文件是stdio.h */ int eno=remove(args[1]); if (eno == -1) { printf("error msg:%s ", strerror(errno)); return 0; } return 0; }
//程序日志代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <time.h> //write log void WriteLog(char * msg) { if(msg==NULL) { printf("msg is NULL! "); return; } if(strlen(msg)>1000) { printf("message is too long!"); return; } /* time_t是一个数字类型,一般用来描述时间 例如tData=1471933520; 这个时间不是很直观,通常需要转化成人类熟悉的时间格式 */ time_t tDate; //获取当前系统时间 time(&tDate); //一种时间结构体 struct tm *eventTime; //将time_t类型转化成struct tm *结构体指针类型 eventTime=localtime(&tDate); //tm_year表示年份,以1900为标准,1900的值是0,1901的值是1 int iyear=eventTime->tm_year+1900; //tm_mon表示月份,从0开始到11结束,按照通常习惯应该从1月份开始 int imon=eventTime->tm_mon+1; //tm_wday:表示一个星期的第几天 从1开始7结束 //tm_yday:表示一年的第几天 //tm_mday:表示正常的月天数 int iday=eventTime->tm_mday; int ihour=eventTime->tm_hour; int imin=eventTime->tm_min; int isec=eventTime->tm_sec; //拼接年月日 char sdate[11]={0}; //强调:为什么sdate数组的大小是11而不是10,应为字符串最后必须是' ' //%04d:右对齐 4位 不足补0 sprintf(sdate,"%04d-%02d-%02d",iyear,imon,iday); //拼接时间 char stime[9]={0}; sprintf(stime,"%02d:%02d:%02d",ihour,imin,isec); //拼接信息字符串 char smsg[1024]={0}; sprintf(smsg,"%s %s %s ",sdate,stime,msg); //open file FILE * pf=fopen("mylog.txt","a"); if(pf==NULL) { printf("error msg:%s ",strerror(errno)); return ; } //write file fputs(smsg,pf); //close file stream fclose(pf); } int main(int arg, char * args[]) { WriteLog("this id bug!"); return 0; }