int main(int argc, char **argv) { int i,j,k; char * s; chdir(BBSHOME); resolve_boards(); resolve_ucache(); resolve_utmp(); memset(count, 0, 200*sizeof(int)); apply_ulist_addr((APPLY_UTMP_FUNC)check,NULL); for (i=0;i<200;i++)order[i]=i; for (i=0;i<200;i++) for (j=i+1;j<200;j++) if (count[order[i]]<count[order[j]]) { k=order[i]; order[i]=order[j]; order[j]=k; } j=0; for (i=0;i<200;i++) { s = ModeType(order[i]); if (s[0]&&strcmp(s,unknown)) { j++; printf("%2d %10s %4d %.2lf%%\n", j, s, count[order[i]], (double)count[order[i]]/total*100); } } return 0; }
int main(int argc, char **argv) { if(argc<=1) return 0; mode = atoi(argv[1]); chdir(BBSHOME); resolve_boards(); resolve_ucache(); resolve_utmp(); apply_ulist_addr((APPLY_UTMP_FUNC)check,NULL); printf("%s: %d\n", ModeType(mode), count); return 0; }
int main(void){ char path[256]; struct stat st; time_t now; struct tm t; now = time(0); localtime_r( &now, &t); chdir(BBSHOME); if( stat( BONLINE_LOGDIR, &st) < 0 ){ if(mkdir(BONLINE_LOGDIR, 0755) < 0) exit(0); } sprintf(path, "%s/%d", BONLINE_LOGDIR, t.tm_year+1900); if( stat(path, &st) < 0){ if(mkdir(path, 0755) < 0) exit(0); } sprintf(path, "%s/%d/%d", BONLINE_LOGDIR, t.tm_year+1900, t.tm_mon+1); if( stat(path, &st) < 0){ if(mkdir(path, 0755) < 0) exit(0); } sprintf(path,"%s/%d/%d/%d_useronline",BONLINE_LOGDIR,t.tm_year+1900,t.tm_mon+1,t.tm_mday); if((fp=fopen(path, "a"))==NULL){ printf("cannot open log file\n"); exit(0); } sprintf(path, "%s/%d/%d/%d_login", BONLINE_LOGDIR, t.tm_year+1900, t.tm_mon+1, t.tm_mday); if((fp_login=fopen(path, "a"))==NULL){ printf("cannot open log file\n"); exit(0); } sprintf(path, "%s/lastcount", BONLINE_LOGDIR); if((fp_forcount=fopen(path, "w+"))==NULL){ printf("cannot open log file\n"); exit(0); } resolve_utmp(); get_publicshm(); resolve_guest_table(); wwwguestonline = getwwwguestcount(); totalonline = get_utmp_number() + wwwguestonline; apply_ulist_addr((APPLY_UTMP_FUNC)do_userlist, NULL); show_wwwguest(); logincount = get_publicshm()->logincount; logoutcount = get_publicshm()->logoutcount; wwwlogincount = get_publicshm()->wwwlogincount; wwwlogoutcount = get_publicshm()->wwwlogoutcount; wwwguestlogincount = get_publicshm()->wwwguestlogincount; wwwguestlogoutcount = get_publicshm()->wwwguestlogoutcount; staytime = get_publicshm()->staytime; wwwstaytime = get_publicshm()->wwwstaytime; wwwgueststaytime = get_publicshm()->wwwgueststaytime; setpublicshmreadonly(0); get_publicshm()->logincount=0; get_publicshm()->logoutcount=0; get_publicshm()->wwwlogincount=0; get_publicshm()->wwwlogoutcount=0; get_publicshm()->wwwguestlogincount=0; get_publicshm()->wwwguestlogoutcount=0; get_publicshm()->staytime=0; get_publicshm()->wwwstaytime=0; get_publicshm()->wwwgueststaytime=0; setpublicshmreadonly(1); /*格式: 时间 totalonline wwwguestonline wwwnotguestonline telnetonline wwwguestschool wwwnotguestschool telnetschool */ fprintf(fp, "%d.%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", t.tm_hour, t.tm_min/6, totalonline, wwwguestonline, wwwnotguestonline, telnetonline, wwwguestschool, wwwnotguestschool, telnetschool); fprintf(fp_login, "%d.%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", t.tm_hour, t.tm_min/6, logincount, logoutcount, (int)(logoutcount?(staytime/logoutcount)/10:0), wwwlogincount, wwwlogoutcount, wwwguestlogincount, wwwguestlogoutcount, (int)(wwwlogoutcount?(wwwstaytime/wwwlogoutcount)/10:0) , (int)(wwwguestlogoutcount?(wwwgueststaytime/wwwguestlogoutcount)/10:0)); fprintf(fp_forcount, "%d\n%d\n%d\n%d\n%d\n%d\n%d\n", totalonline, wwwguestonline, wwwnotguestonline, telnetonline, wwwguestschool, wwwnotguestschool, telnetschool); fclose(fp); fclose(fp_login); fclose(fp_forcount); return 0; }