
正文
Linux 文件管理(C语言库函数二--程序日志)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
文件删除和改名
int remove(const char *pathname);
int rename(const char *oldpath,const char *newpath);
remove函数删除pathname指向的文件名
rename函数修改文件名称
执行成功返回0,失败返回-,错误代码保存在变量errno中。
//remove()函数和rename()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h> int main(int arg, char * args[])
{
if (arg < )
{
printf("请输入一个参数!\n");
return ;
}
//rename file
//int eno=rename(args[1],args[2]);
//remove file
/*
remove()函数头文件是stdio.h
*/
int eno=remove(args[]);
if (eno == -)
{ printf("error msg:%s\n", strerror(errno));
return ;
}
return ;
}
//程序日志代码
#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!\n");
return;
}
if(strlen(msg)>)
{
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+;
//tm_mon表示月份,从0开始到11结束,按照通常习惯应该从1月份开始
int imon=eventTime->tm_mon+;
//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[]={};
//强调:为什么sdate数组的大小是11而不是10,应为字符串最后必须是'\0'
//%04d:右对齐 4位 不足补0
sprintf(sdate,"%04d-%02d-%02d",iyear,imon,iday);
//拼接时间
char stime[]={};
sprintf(stime,"%02d:%02d:%02d",ihour,imin,isec);
//拼接信息字符串
char smsg[]={};
sprintf(smsg,"%s %s\n\t%s\n",sdate,stime,msg);
//open file
FILE * pf=fopen("mylog.txt","a");
if(pf==NULL)
{
printf("error msg:%s\n",strerror(errno));
return ;
}
//write file
fputs(smsg,pf);
//close file stream
fclose(pf);
} int main(int arg, char * args[])
{
WriteLog("this id bug!");
return ;
}







