Linux 简单打印日志(二)
生活随笔
收集整理的這篇文章主要介紹了
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\n",i);write_log_file("log.txt",FILE_MAX_SIZE,buffer,strlen(buffer));sleep(1);//Sleep(100);
}return 0;
}
未完待續
轉載于:https://www.cnblogs.com/wanghao-boke/p/11128492.html
總結
以上是生活随笔為你收集整理的Linux 简单打印日志(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3000元投影仪推荐啥牌子呀?一般选哪个
- 下一篇: Linux 打印简单日志(一)