#include int main(int ac, char **av) { char *s; char buf[10240]; int rv; unsigned int val; FILE *fp = NULL; int n = 0; while ((s = fgets(buf, 10240, stdin))) { while (1) { rv = sscanf(s, "%02x", &val); if (rv >= 0) { unsigned char ch = val; if (!fp) { char name[32]; snprintf(name, sizeof(name), "%02d-%02x-h2b.bin", n, ch); n++; fp = fopen(name, "wb"); } s += 2; fwrite(&ch, 1, 1, fp); //printf("char: %02x\n", val); } else { //printf("rv: %d\n", rv); break; } } if (fp) fclose(fp); fp = NULL; //printf("line done\n"); } return 0; }