(root)/
binutils-2.41/
binutils/
bin2c.c
       1  /* bin2c.c -- dump binary file in hex format
       2     Copyright (C) 2007-2023 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  }