Home | History | Annotate | Download | only in binutils
      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
     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