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