• 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;
    }
  • 相关阅读:
    APP性能之终端兼容优化分享
    Java反射机制
    语音编码的WAVE文件头格式剖析
    【原创】ASP.NET MVC3开发中遇到问题以及解决方法
    linux常用命令(基础)
    vue中粘贴板clipboard的使用方法
    解决部署zabbix中zabbixagent的状态为灰色现象
    IAR Embedded Workbench for ARM: Porting code from V4 to V5 ( for stm32)
    MSDN帮助文档 "无法显示该网页" 的问题解决方案(转)
    二叉排序树求每个结点平衡因子程序
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5799138.html
Copyright © 2020-2023  润新知