int read_list(char *basepath, const char *filename) { size_t len = 0; FILE *f = NULL; char * line = NULL; int confLidas, revsLidas, confsRej, revsRej; confLidas = 0; revsLidas = 0; confsRej = 0; revsRej = 0; int naut = 0; char *absolute = NULL; absolute = (char *) malloc(sizeof (char) *(strlen(basepath) + strlen(filename))); strcat(absolute, basepath); strcat(absolute, filename); initTA(); f = fopen(absolute, "r"); if (f != NULL) { line = (char *) calloc(MAX_CHAR, sizeof (char)); line = fgets(line, MAX_CHAR, f); min_pag = atoi(line); do { line = (char *) calloc(MAX_CHAR, sizeof (char)); line = fgets(line, MAX_CHAR, f); if (line != NULL) { len = strlen(line); if (line[len - 1] == '\n') line[len - 1] = '\0'; absolute = (char *) malloc(sizeof (char) * (strlen(basepath) + len)); clear_str(absolute, strlen(basepath) + len); strcat(absolute, basepath); strcat(absolute, line); if (line[0] == 'c') confLidas += readC(absolute, &confsRej); if (line[0] == 'j') revsLidas += readJ(absolute, &revsRej); } } while (line != NULL && line != "" && !feof(f)); fclose(f); } if (absolute != NULL) { free(absolute); absolute = NULL; } free(line); logStats(confLidas, revsLidas, confsRej, revsRej); return 0; }
/* note, we will *own* the name, email we get, and we'll free them in * the end... */ static ContactInfo * contact_info_new (char *email, char *name, time_t tstamp) { ContactInfo *cinfo; /* email should not be NULL, name can */ g_return_val_if_fail (email, NULL); cinfo = g_slice_new (ContactInfo); /* we need to clear the strings from control chars because * they could screw up the keyfile */ clear_str (email); clear_str (name); cinfo->_email = email; cinfo->_name = name; cinfo->_tstamp = tstamp; return cinfo; }
int readIntervalos(char* fileName) { size_t len = 0; FILE *f = NULL; char * line = NULL, tmp[4]; int i = 0, anoInicial = 0, anoFinal = 0, res = 0; int j; char *absolute = NULL; absolute = (char *) calloc((strlen(CAMINHO) + strlen(fileName)), sizeof (char)); clear_str(absolute, strlen(CAMINHO) + strlen(fileName)); strcat(absolute, CAMINHO); strcat(absolute, fileName); logIntervaloTIT(); f = fopen(absolute, "r"); if (f != NULL) { do { line = (char *) calloc(MAX_CHAR, sizeof (char)); line = fgets(line, MAX_CHAR, f); if (line != NULL) { len = strlen(line); if (line[len - 1] == '\n') line[len - 1] = '\0'; for (i = 0; line[i] != '-'; i++) tmp[i] = line[i]; anoInicial = atoi(tmp); i++; for (; line[i] != '\0'; i++) tmp[i - 5] = line[i]; anoFinal = atoi(tmp); } res = intervalosAnos(anoInicial, anoFinal); } while (line != NULL && line != "" && !feof(f)); fclose(f); } if (absolute != NULL) { free(absolute); absolute = NULL; } free(line); return res; }
int readAno(char* fileName) { size_t len = 0; FILE *f = NULL; char * line = NULL, tmp[4]; int i = 0, ano = 0, res = 0; char *absolute = NULL; absolute = (char *) calloc((strlen(CAMINHO) + strlen(fileName)), sizeof (char)); clear_str(absolute, strlen(CAMINHO) + strlen(fileName)); strcat(absolute, CAMINHO); strcat(absolute, fileName); logAnosAutoresPercentagemTIT(); f = fopen(absolute, "r"); if (f != NULL) { do { line = (char *) calloc(MAX_CHAR, sizeof (char)); line = fgets(line, MAX_CHAR, f); if (line != NULL) { len = strlen(line); if (line[len - 1] == '\n') line[len - 1] = '\0'; for (i = 0; line[i] != '\0'; i++) tmp[i] = line[i]; ano = atoi(tmp); i++; } res = anosAutoresPercentagem(ano); } while (line != NULL && line != "" && !feof(f)); fclose(f); } if (absolute != NULL) { free(absolute); absolute = NULL; } free(line); return res; }
int main(int argc,char** argv) { int case_no=0; char data[MAXLEN]; char* stop_tag="STOP"; while(gets(data)) { if(m_strcmp(data,stop_tag)) { break; } printf("#%d: %s\n",++case_no,(is_palindrome(data)?"YES":"NO")); clear_str(data,MAXLEN); } return 0; }
int read_buffer(t_shell *sh) { int ret; find_ps1(sh); my_putstr(sh->ps1); free(sh->ps1); free(sh->ps_1); clear_str(sh); while ((ret = read(0, sh->buffer, 512)) == 512); if (ret == 0) { putchar(10); return (0); } sh->buffer[ret - 1] = '\0'; return (ret); }
int main(int argc,char**argv) { int i,case_no=0,case_num,num,status; char s[MAXLEN]; scanf("%d",&case_num); while(case_num--) { getchar(); gets(s); num=0; for(i=0;s[i]!='[';i++) { num *=10; num +=(s[i]-'0'); } status=find_status(s[i+1]); assert(status!=M_ERROR); /*输出%需要使用%%*/ printf("Case #%d: %.2lf%%\n",++case_no,100*calc_percentage(num,status)); clear_str(s,MAXLEN); } return 0; }
/* * Product information screen */ void cr(void) { char *temp; temp = calloc(81, sizeof(char)); if (utf8) chartran_init((char *)"CP437", (char *)"UTF-8", 'B'); strncpy(pstr, clear_str(), 255); strncat(pstr, colour_str(DARKGRAY, BLACK), 255); /* Print top row */ strncat(pstr, (char *)"\xDA", 255); strncat(pstr, hLine_str(76), 255); strncat(pstr, (char *)"\xBF\r\n", 255); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 80, "MBSE Bulletin Board System %s (%s-%s)", VERSION, OsName(), OsCPU()); strncat(pstr, pout_str(YELLOW, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 81, "%s", COPYRIGHT); strncat(pstr, pout_str(LIGHTCYAN, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); snprintf(temp, 81, "Compiled on %s at %s", __DATE__, __TIME__); strncat(pstr, pout_str(LIGHTRED, BLACK, padleft(temp, 76, ' ')), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"MBSE has been written and designed by Michiel Broek. Many others have given "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"valuable time in the form of new ideas and suggestions on how to make MBSE "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTCYAN, BLACK, (char *)"BBS a better BBS "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(WHITE, BLACK, (char *)"Available from http://www.mbse.eu or 2:280/2802 "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)"JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner, "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)" Mats Birch, Mats Wallin. "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTRED, BLACK, (char *)" ALL RIGHTS RESERVED. "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTBLUE, BLACK, (char *)"This is free software; released under the terms of the GNU General Public "), 255); rs(); PUTSTR(chartran(pstr)); ls(); strncat(pstr, pout_str(LIGHTBLUE, BLACK, (char *)"License as published by the Free Software Foundation. "), 255); rs(); PUTSTR(chartran(pstr)); wl(); PUTSTR(chartran(pstr)); strcpy(pstr, (char *)"\xC0"); strncat(pstr, hLine_str(76), 255); strncat(pstr, (char *)"\xD9\r\n", 255); PUTSTR(chartran(pstr)); free(temp); chartran_close(); Enter(1); Pause(); }
/* * Display last callers screen. */ void LastCallers(char *OpData) { FILE *fp; int LineCount = 5, count = 0; char lstr[201], *sFileName, *Heading; struct lastcallers lcall; struct lastcallershdr lcallhdr; sFileName = calloc(PATH_MAX, sizeof(char)); Heading = calloc(81, sizeof(char)); if (utf8) chartran_init((char *)"CP437", (char *)"UTF-8", 'B'); strcpy(lstr, clear_str()); PUTSTR(chartran(lstr)); snprintf(sFileName, PATH_MAX, "%s/etc/lastcall.data", getenv("FTND_ROOT")); if ((fp = fopen(sFileName,"r")) == NULL) WriteError("$LastCallers: Can't open %s", sFileName); else { fread(&lcallhdr, sizeof(lcallhdr), 1, fp); strcpy(lstr, colour_str(WHITE, BLACK)); /* Todays callers to */ snprintf(Heading, 81, "%s%s", (char *) Language(84), CFG.bbs_name); strncat(lstr, Center_str(Heading), 200); PUTSTR(chartran(lstr)); strcpy(lstr, colour_str(LIGHTRED, BLACK)); strncat(lstr, Center_str(hLine_str(strlen(Heading))), 200); PUTSTR(chartran(lstr)); Enter(1); /* # User Name Device timeOn Calls Location */ strcpy(lstr, poutCR_str(LIGHTGREEN, BLACK, (char *) Language(85))); PUTSTR(chartran(lstr)); strcpy(lstr, colour_str(GREEN, BLACK)); strncat(lstr, fLine_str(cols -1), 200); PUTSTR(chartran(lstr)); while (fread(&lcall, lcallhdr.recsize, 1, fp) == 1) { if (!lcall.Hidden) { count++; strcpy(lstr, colour_str(WHITE, BLACK)); snprintf(Heading, 80, "%-5d", count); strncat(lstr, Heading, 200); strncat(lstr, colour_str(LIGHTCYAN, BLACK), 200); if ((strcasecmp(OpData, "/H")) == 0) { if ((strcmp(lcall.Handle, "") != 0 && *(lcall.Handle) != ' ')) snprintf(Heading, 80, "%-20s", lcall.Handle); else snprintf(Heading, 80, "%-20s", lcall.UserName); } else if (strcasecmp(OpData, "/U") == 0) { snprintf(Heading, 80, "%-20s", lcall.Name); } else { snprintf(Heading, 80, "%-20s", lcall.UserName); } strncat(lstr, Heading, 200); snprintf(Heading, 80, "%-8s", lcall.Device); strncat(lstr, pout_str(LIGHTBLUE, BLACK, Heading), 200); snprintf(Heading, 80, "%-8s", lcall.TimeOn); strncat(lstr, pout_str(LIGHTMAGENTA, BLACK, Heading), 200); snprintf(Heading, 80, "%-7d", lcall.Calls); strncat(lstr, pout_str(YELLOW, BLACK, Heading), 200); snprintf(Heading, 80, "%-32s", lcall.Location); strncat(lstr, pout_str(LIGHTRED, BLACK, Heading), 200); PUTSTR(chartran(lstr)); Enter(1); LineCount++; if (LineCount == (rows -2)) { Pause(); LineCount = 0; } } /* End of check if user is hidden */ } strcpy(lstr, colour_str(GREEN, BLACK)); strncat(lstr, fLine_str(cols -1), 200); PUTSTR(chartran(lstr)); fclose(fp); Enter(1); Pause(); } free(sFileName); free(Heading); chartran_close(); }