将文件转换为 C 数据结构

作者:Mitch Frazier

昨天发布的关于在可执行文件中嵌入文件的文章收到了一些关于将文件转换为 C 数据结构的程序的回复。 这当然是一种选择,这是一个脚本,无需搜索程序即可执行此操作,它使用标准的 Linux 工具

#!/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 "};"

附:此脚本也出现在原始帖子的回复中。

Mitch Frazier 是 Emerson Electric Co. 的一名嵌入式系统程序员。自 21 世纪初以来,Mitch 一直是 Linux Journal 的贡献者和朋友。

加载 Disqus 评论