Титла: parsing na file s C
Публикувано от: panx в Jul 08, 2002, 16:49
Pravq optiti za programirane na C Nalaga mi se parse na /proc/net/dev - iskam da izvadq tekushtiq vhodqsht i izhodqsht traffic i da go linkna kym nekva promenliva. Koq funkciq da polzvam ot mnogoto *scan* . Shte se radvam i na nqkol-drug red kato primer:) Thanx
Титла: parsing na file s C
Публикувано от: в Jul 09, 2002, 04:38
Нещо такова би трябвало да свърши работа: Примерен код | #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h>
int main() { FILE *fp; #define buf_len 1024 #define ISBLANK(c) (((c) == ' ') || ((c) == '\t')) char buf[buf_len]; int line_num = 0; const char *stats_file = "/proc/net/dev"; const char *interface = "ppp0"; if(stats_file == NULL) return(-1); fp = fopen(stats_file, "rb"); if(fp == NULL) return(-1); while(fgets(buf, buf_len, fp) != NULL) { if(line_num >= 2) { char cur_ifname[256]; char *strptr;
unsigned long r_bytes, r_packets, r_errs, r_drop, r_fifo, r_frame, r_compressed, r_multicast, s_bytes, s_packets, s_errs, s_drop, s_fifo, s_colls, s_carrier, s_compressed;
strptr = buf; while(ISBLANK(*strptr)) strptr++; strncpy(cur_ifname, strptr, 256); cur_ifname[256 - 1] = '\0'; strptr = strchr(cur_ifname, ':'); if(strptr != NULL) (*strptr) = '\0';
if(!strcmp(interface, cur_ifname)) {
strptr = strchr(buf, ':'); if(strptr != NULL) strptr++; else strptr = buf; while(ISBLANK(*strptr)) strptr++;
sscanf( strptr, "%lu %lu %lu %lu\ %lu %lu %lu %lu\ %lu %lu %lu %lu\ %lu %lu %lu %lu", &r_bytes, &r_packets, &r_errs, &r_drop, &r_fifo, &r_frame, &r_compressed, &r_multicast, &s_bytes, &s_packets, &s_errs, &s_drop, &s_fifo, &s_colls, &s_carrier, &s_compressed ); printf("Recieved bytes: %ld\nSent bytes: %ld\n",r_bytes, s_bytes); break; } }
line_num++; }
fclose(fp);
#undef buf_len
}
|
Титла: parsing na file s C
Публикувано от: в Jul 09, 2002, 08:32
Bla, tva e poveche ot tova koeto ochakvah. Blagodarq! 
Титла: parsing na file s C
Публикувано от: в Jul 09, 2002, 22:07
As se sblaskah sas podoben problem: Opitvam se da parsna html direktno ot url-a , no se sblaskah s dosta problemi sas socket - vraskata. Njakoi moze li da mi pomgne sas savet ili HOWTO-Adres??? Mersi 
|