xref: /freebsd/usr.bin/file2c/file2c.1 (revision 87569f75a91f298c52a71823c04d41cf53c88889)
1.\"----------------------------------------------------------------------------
2.\" "THE BEER-WARE LICENSE" (Revision 42):
3.\" <phk@FreeBSD.org> wrote this file.  As long as you retain this notice, you
4.\" can do whatever you want with this file. If we meet some day, and you think
5.\" this stuff is worth it, you can buy me a beer in return.  Poul-Henning Kamp
6.\" ---------------------------------------------------------------------------
7.\"
8.\" $FreeBSD$
9.\"
10.Dd May 14, 2005
11.Dt FILE2C 1
12.Os
13.Sh NAME
14.Nm file2c
15.Nd convert file to c-source
16.Sh SYNOPSIS
17.Nm
18.Op Fl n Ar count
19.Op Fl x
20.Op Ar prefix Op Ar suffix
21.Sh DESCRIPTION
22The
23.Nm
24utility reads a file from stdin and writes it to stdout, converting each
25byte to its decimal or hexadecimal representation on the fly.
26The byte values are separated by a comma.
27This also means that the last byte value is not followed by a comma.
28By default the byte values are printed in decimal, but when the
29.Fl x
30option is given, the values will be printed in hexadecimal.
31.Pp
32If more than 70 characters are printed on the same line, that line is
33ended and the output continues on the next line.
34With the
35.Fl n
36option this can be made to happen after the specified number of
37byte values have been printed.
38The length of the line will not be considered anymore.
39To have all the byte values printed on the same line, give the
40.Fl n
41option a negative number.
42.Pp
43A prefix and suffix strings can be printed before and after the byte values
44(resp.)
45If a suffix is to be printed, a prefix must also be specified.
46The first non-option word is the prefix, which may optionally be followed
47by a word that is to be used as the suffix.
48.Pp
49This program is typically used to embed binary files into C source files.
50The prefix is used to define an array type and the suffix is used to end
51the C statement.
52The
53.Fl x
54and
55.Fl n
56options are useful when the binary data represents a bitmap and the output
57needs to remain readable and/or editable.
58Fonts, for example, are a good example of this.
59.Sh EXAMPLES
60The command:
61.Bd -literal -offset indent
62date | file2c 'const char date[] = {' ',0};'
63.Ed
64.Pp
65will produce:
66.Bd -literal -offset indent
67const char date[] = {
6883,97,116,32,74,97,110,32,50,56,32,49,54,58,50,56,58,48,53,
6932,80,83,84,32,49,57,57,53,10
70,0};
71.Ed
72