Convert a File to a C Data Structure
on June 13, 2008
Yesterday's post about embedding a file in an executable has gotten a couple of replies about programs that will convert the file to a C data structure. This is certainly an option, here's a script that does that without the need to go searching for programs, it uses standard Linux tools:
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo "Usage: $0 FILENAME"
exit 1
fi
file=$1
if [[ ! -f "$file" ]]; then
echo "File not found: $file"
exit 1
fi
cname=$file
cname=${cname//-/_}
cname=${cname//./_}
echo "static unsigned char $cname[] = {"
hexdump -v -e '" " 16/1 " 0x%02x, " "\n"' $file | \
sed -e '$s/0x ,//g'
echo "};"
PS This script also appears in a reply to the original post.