#include #include #include main(int argc, char **argv) { char *decode , buf[1024], *end; unsigned char out[17]; int i, file_no=0, byte; ssize_t len, offset=0; char file_name[1024]; FILE *file=stdout; while (len = read(0, buf+offset, sizeof(buf)-offset)) { decode = buf; end = buf + len ; offset=0; while (decode < end) { if (*decode == ' ') { decode++; continue ; } ; if (isspace(*decode)) { decode++; continue ; } ; if ((end - decode) == 1) { buf[0] = *decode; offset=1; break; } if (sscanf(decode, "%02x", &byte) < 1) { decode++; continue ; } ; fputc(byte, file); decode += 2; } } }