Linux 文件管理(C语言库函数二--程序日志)

文件删除和改名
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;
}
原文地址:https://www.cnblogs.com/zhanggaofeng/p/5799138.html