c++ 日志处理

来源:互联网 发布:淘宝网2017女装秋冬装 编辑:程序博客网 时间:2024/05/16 15:35

在很多日志分析中,日志的每行是一个记录,用脚本处理日志很方便,但是对于大数据量处理有效率的问题。使用c++的文件操作,每次读出日志的一行记录,进行处理,对整个处理过程计时。以下代码是对一个URL日志文件(每行一个URL记录)的文件操作:

#include<stdio.h>#include<iostream>#include<stdlib.h>#include<string>#include<time.h>using namespace std;#define URL_MAX_LEN 2049int main(){        //FILE *fopen(const char *filename,const char *mode),打开一个流,和文件相关联        char* file_path = "url";        FILE * fp = fopen(file_path,"r");        if(NULL == fp){                cout << "file open err" << endl;        }        clock_t start_time = clock();        char buffer[URL_MAX_LEN];        int num = 0;        while(fgets(buffer,URL_MAX_LEN,fp) != NULL){                cout << buffer;                num ++;        }        cout << num;        #if 0        //用于测试时间函数        int i = 1;        while(i<10000000){                i++;        }        #endif        clock_t end_time = clock();        //滴答差值/(每秒的滴答数)*(1秒有1000ms) = ms        double msec = (double)(end_time - start_time)/(double)CLOCKS_PER_SEC * 1000;        cout << msec << endl;        //int fclose(FILE *fp);        fclose(fp);        return 0;}

原创粉丝点击