char buf1[512], buf2[512];
char buf1[1024], buf2[1024];
void process_fd(FILE *f){    char buf1[512], buf2[512];    char *sp, *np, *p;    while (fgets(buf1, sizeof buf1, f)) {	int endflag;	struct tabtab *tab;	if (!fgets(buf2, sizeof buf2, f))	    break;	sp = strchr(buf1, ':');	np = strchr(buf2, ':');	if (!np || !sp)	    goto formaterr;	*sp = '\0';	tab = newtable(snmptabs, buf1);	if (tab == NULL) {		printf("unknown %s\n", buf1);		continue;	}	np++;	sp++;	endflag = 0;	while (!endflag) {	    sp += strspn(sp, " \t\n"); 	    np += strspn(np, " \t\n"); 	    /*if (*np == '\0') goto formaterr; */	    p = sp+strcspn(sp, " \t\n");	    if (*p == '\0')		endflag = 1;	    *p = '\0';	    if (*sp != '\0' && *(tab->flag)) 			printval(tab, sp, strtoul(np, &np, 10));	    sp = p + 1;	}    }  return;  formaterr:  perror(_("error parsing /proc/net/snmp"));  return;}