zoukankan      html  css  js  c++  java
  • Linux 简单打印日志(二)

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<time.h>
    //#include<windows.h>
    #include <unistd.h> // linux下头文件
    
    #define FILE_MAX_SIZE (1024*1024)
    
    void get_local_time(char* buffer){
        time_t rawtime;
        struct tm* timeinfo;
        time(&rawtime);
        timeinfo = localtime(&rawtime);
        sprintf(buffer,"%04d-%02d-%02d %02d:%02d:%02d",
                (timeinfo->tm_year+1900),timeinfo->tm_mon,
                timeinfo->tm_mday,timeinfo->tm_hour,
                timeinfo->tm_min,timeinfo->tm_sec);
    }
    
    long get_file_size(char* filename){
        long length = 0;
        FILE* fp = NULL;
        fp = fopen(filename,"rb");
        if(fp != NULL){
            fseek(fp,0,SEEK_END);
            length = ftell(fp);
        }
        if(fp != NULL){
            fclose(fp);
            fp = NULL;
        }
        return length;
    }
    
    void write_log_file(char* filename,long max_size,char* buffer,unsigned buf_size){
        if(filename != NULL && buffer != NULL ){
            long length = get_file_size(filename);
            if(length > max_size){
                unlink(filename);
            }
            {
                FILE* fp;
                fp = fopen(filename,"at+");
                if(fp != NULL){
                    char now[32];
                    memset(now,0,sizeof(now));
                    get_local_time(now);
                    fwrite(now,strlen(now)+1,1,fp);
                    fwrite(buffer,buf_size,1,fp);
                    fclose(fp);
                    fp = NULL;
                }
            }
        }
    }
    
    int main(int argc,char** argv){
        for(int i = 0; i < 10; ++i){
            char buffer[32];
            memset(buffer,0,sizeof(buffer));
            sprintf(buffer,"====>%d
    ",i);
              write_log_file("log.txt",FILE_MAX_SIZE,buffer,strlen(buffer));
            sleep(1);
            //Sleep(100);
        }
        return 0;
    }

    未完待续

  • 相关阅读:
    软件-集成开发环境:IDE
    框架-Eureka:初识 Eureka
    框架:Rureka
    计算机系统-组件:DS(目录服务)
    院校-美国-麻省理工学院(MIT):百科
    院校-国外-美国-斯坦福大学( Stanford):百科
    院校:目录
    杂项:院校
    网络:万维网(WWW)
    词语辨析
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11128492.html
Copyright © 2011-2022 走看看