xref: /freebsd/contrib/libpcap/msdos/bin2c.c (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <stdarg.h>
4 #include <time.h>
5 
6 static void Abort (const char *fmt,...)
7 {
8   va_list args;
9   va_start (args, fmt);
10   vfprintf (stderr, fmt, args);
11   va_end (args);
12   exit (1);
13 }
14 
15 int main (int argc, char **argv)
16 {
17   FILE  *inFile;
18   FILE  *outFile = stdout;
19   time_t now     = time (NULL);
20   int    ch, i;
21 
22   if (argc != 2)
23      Abort ("Usage: %s bin-file [> result]", argv[0]);
24 
25   if ((inFile = fopen(argv[1],"rb")) == NULL)
26      Abort ("Cannot open %s\n", argv[1]);
27 
28   fprintf (outFile,
29            "/* data statements for file %s at %.24s */\n"
30            "/* Generated by BIN2C, G. Vanem 1995 */\n",
31            argv[1], ctime(&now));
32 
33   i = 0;
34   while ((ch = fgetc(inFile)) != EOF)
35   {
36     if (i++ % 12 == 0)
37        fputs ("\n  ", outFile);
38     fprintf (outFile, "0x%02X,", ch);
39   }
40   fputc ('\n', outFile);
41   fclose (inFile);
42   return (0);
43 }
44