bin2c.c revision 1.1 1 1.1 christos /* bin2c.c -- dump binary file in hex format
2 1.1 christos Copyright 2007, 2008 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