Annotation of embedaddon/hping2/utils/hex2bin.c, revision 1.1
1.1 ! misho 1: /*
! 2: * hex2bin - simple hex to bin filter
! 3: * antirez@invece.org - under GPL version 2
! 4: */
! 5:
! 6: #include <stdio.h>
! 7: #include <sys/stat.h>
! 8: #include <sys/types.h>
! 9: #include <fcntl.h>
! 10: #include <unistd.h>
! 11: #include <string.h>
! 12:
! 13: int hex2bin(void)
! 14: {
! 15: char hex[3];
! 16: int d = 0;
! 17: unsigned char c;
! 18: int stdin_fd = fileno(stdin);
! 19: int n_read;
! 20:
! 21: while((n_read = read(stdin_fd, hex, 2)) > 0)
! 22: {
! 23: if (n_read == 1)
! 24: {
! 25: if (hex[0] != '\n')
! 26: {
! 27: fprintf(stderr,
! 28: "input parse error, odd digits in hex file\n");
! 29: exit(1);
! 30: }
! 31: else
! 32: exit(1);
! 33: }
! 34: hex[2] = '\0';
! 35: sscanf(hex, "%x", &d);
! 36: c = (unsigned char) d;
! 37: printf("%c", c);
! 38: }
! 39: return 0;
! 40: }
! 41:
! 42: int bin2hex(void)
! 43: {
! 44: int stdin_fd = fileno(stdin);
! 45: int n_read;
! 46: unsigned char c;
! 47:
! 48: while((n_read = read(stdin_fd, &c, 1)) > 0)
! 49: {
! 50: printf("%.2x", c);
! 51: }
! 52: return 0;
! 53: }
! 54:
! 55: int main(int argc, char **argv)
! 56: {
! 57: if (argc >= 2 && strstr(argv[1], "-r"))
! 58: bin2hex();
! 59: else
! 60: hex2bin();
! 61:
! 62: return 0;
! 63: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>