a small program to embed raw files into C programs by translate them into arrays
fff56280 — Jakob Kaivo 2 years ago
add -q option
c8319c68 — Jakob Kaivo 2 years ago
Update README.md
29a1831f — Jakob Kaivo 2 years ago
Update README.md


browse  log 



You can also use your local clone with git send-email.


translate files to C arrays


array [-s] [-q qualifier] [file...]


The array utility translates its input into C arrays (of a qualified type of char) that can then be used (via #include) in larger C programs. This is useful if you need to embed a binary (e.g. an image) or text (e.g. a template) file and need to ship a program as a single, self-contained executable.


The array utility conforms to the XBD Utility Syntax Guidelines. It supports the following options:

-s Include an additional identifier in the output indicating the size of the array. See STDOUT below for a detailed description.

-q Apply the C type qualifier qualifier to the generated array. If none is provided, the default is unsigned. To remove any qualifiers altogether (e.g. to declare an array of char), specify the empty string (e.g. -q '').


The array utility supports the following operands:

file A pathname of an input file. If - is specified, array reads from the standard input.


The standard input is used if no file operands are provided or if - is specified as an operand.

#Input Files

Input files are treated as raw binary streams, with no requirements on format.


A definition of a C array of type qualified char and unspecified length, with members initialized to the bytes of the input file. Each array is named with the name of the input file, except all non alphanumeric characters (as identified by the function isalnum()) are translated to _. If the input file is the standard input, the name of the array is stdin.

If the -s option is specified, the standard output also includes the definition of a size identifier. This identifier has the same name as the array, suffixed with _size, and type size_t.


The standard error is used for printing diagnostic messages.

#Output Files


#Extended Description


#Exit Status

0 Successful completion.

0 An error occurred.

#Consequence of Errors

If one or more input files cannot be opened, array will print a diagnostic message to standard error and that file will not produe any output to standard output.