Написать программу анализирующую лог файл сервера apach - C (СИ)
Формулировка задачи:
Написать программу анализирующую лог файл сервера apach, рассчитывающую увеличение нагрузки на сервере по дням года. В результате нужно вывести на экран значения массива из 365 элементов, в каждом элементе которого записано значение соответствующее определенному дню.
вот рабочий код, напишите пожалуйста комментарий построчно, заранее спасибо!
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> int DayYear(char *mon, int day) { int dayMon2011[12]={31,29,31,30,31,30,31,31,30,31,30,31}; char month[12][4]={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; int nn=0; int n=-1; do n++; while((strcmp(month[n],mon)!=0)&&(n<11)); for(int i=0;i<n;i++) nn=nn+dayMon2011[i]; return nn+day; } int main() { FILE *f; char s[50], ss[1000], date[12], *p; char day[4], mon[4], year[5]; char year1[5]; int day2; int i, masD[365]; f=fopen("access_log","r"); printf("wwedite interesujuwij god: "); scanf("%s",year1); for(i=0;i<365;i++) masD[i]=0; do{ fgets(s, 50, f); fgets(ss, 1000, f); p=strchr(s, '['); if(p) { strncpy(date, p+1, 11); date[11]='\0'; strncpy(day, date, 2); day[2]='\0'; day2=atoi(day); strncpy(mon, date+3, 3); mon[3]='\0'; strncpy(year, p+8, 4); year[4]='\0'; if(strcmp(year1,year)==0) masD[ DayYear(mon,day2)]++; } } while(!feof(f)); for(i=0;i<365;i++) printf("%d: %d\n", i+1, masD[i]); fclose(f); getch(); return 0; }
Решение задачи: «Написать программу анализирующую лог файл сервера apach»
textual
Листинг программы
char month[12][4]={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
Объяснение кода листинга программы
- Объявлен массив
month
типаchar
с размером 12 элементов, каждый из которых является строкой (массивом символов) размером 4 символа. - Каждый элемент массива
month
содержит название месяца в виде строки. - Значения переменных в массиве
month
соответствуют названиям месяцев от января до декабря.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д