1 1.1 christos /* bin2c.c -- dump binary file in hex format 2 1.10 christos Copyright (C) 2007-2025 Free Software Foundation, Inc. 3 1.1 christos 4 1.1 christos This file is part of GNU Binutils. 5 1.1 christos 6 1.1 christos This program is free software; you can redistribute it and/or modify 7 1.1 christos it under the terms of the GNU General Public License as published by 8 1.1 christos the Free Software Foundation; either version 3 of the License, or 9 1.1 christos (at your option) any later version. 10 1.1 christos 11 1.1 christos This program is distributed in the hope that it will be useful, 12 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 13 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 1.1 christos GNU General Public License for more details. 15 1.1 christos 16 1.1 christos You should have received a copy of the GNU General Public License 17 1.1 christos along with this program; if not, write to the Free Software 18 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 19 1.1 christos 02110-1301, USA. */ 20 1.1 christos 21 1.1 christos #include <stdio.h> 22 1.1 christos #include <stdlib.h> 23 1.1 christos #include "binary-io.h" 24 1.1 christos 25 1.1 christos int 26 1.1 christos main (int argc, char *argv[]) 27 1.1 christos { 28 1.1 christos int c; 29 1.1 christos int i; 30 1.1 christos 31 1.1 christos if (argc != 1) 32 1.1 christos { 33 1.1 christos int ishelp = 0; 34 1.1 christos FILE *stream; 35 1.1 christos 36 1.1 christos if (argc == 2 && argv[1][0] == '-') 37 1.1 christos { 38 1.1 christos const char *opt = &argv[1][1]; 39 1.1 christos if (*opt == '-') 40 1.1 christos ++opt; 41 1.1 christos ishelp = *opt == 'h' || *opt == 'H'; 42 1.1 christos } 43 1.1 christos 44 1.1 christos stream = ishelp ? stdout : stderr; 45 1.1 christos fprintf (stream, "Usage: %s < input_file > output_file\n", argv[0]); 46 1.1 christos fprintf (stream, "Prints bytes from stdin in hex format.\n"); 47 1.1 christos exit (!ishelp); 48 1.1 christos } 49 1.1 christos 50 1.1 christos SET_BINARY (fileno (stdin)); 51 1.1 christos 52 1.1 christos i = 0; 53 1.1 christos while ((c = getc (stdin)) != EOF) 54 1.1 christos { 55 1.1 christos printf ("0x%02x,", c); 56 1.1 christos if (++i == 16) 57 1.1 christos { 58 1.1 christos printf ("\n"); 59 1.1 christos i = 0; 60 1.1 christos } 61 1.1 christos } 62 1.1 christos if (i != 0) 63 1.1 christos printf ("\n"); 64 1.1 christos 65 1.1 christos exit (0); 66 1.1 christos } 67