c - 如何将文件捆绑/包含并使用到 C - linux 中的可执行文件中?

标签 c linux file

我用谷歌搜索了一下这个问题,但似乎没有得到任何与我所要求的类似的信息。

我正在创建一个非常简单的 C 脚本,它创建一堆模板文件(它们都不是代码或库或任何东西,它们只是 txt 文件),具体取决于通过控制台传递的参数,我的方式本来要解决这个问题的方法就是使用 fopen 和 fwrite,基本上是逐行组装文件,仅替换我需要的文件,但我认为必须有一种方法将一些文件捆绑到代码中,这样我就可以打开并替换那些文件需要根据具体情况进行更改。

我想我也可以创建几个 const char *file_text ,这样就可以解决问题,但我想知道如果需要使用比文本更难处理的东西,我所要求的是否可能出现。

问题是我似乎无法找到如何,明确地说,我想在控制台上做这样的事情: ./Gen.sh 项目名称

让 Gen.sh 成为一个独立的文件,无需将原始模板保留在同一文件夹中。

最佳答案

您可以使用linker to do such embedding

$ ld -r -b binary cat.png -o cat.o

The object file will have three symbols in it,

$ nm cat.o
_cat_start
_cat_end
_cat_size

To use them from C, declare some extern variables

extern const char cat_start;
extern const char cat_end;
extern const int cat_size;

然后您可以链接生成的目标文件,同样可以用于文本文件

关于c - 如何将文件捆绑/包含并使用到 C - linux 中的可执行文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62826596/

相关文章:

php - 按数字顺序而不是字母顺序列出文件?

linux - Flume 在 Linux 中运行失败

file - HTTPS 协议(protocol)文件完整性

c - 尝试在 C 中取消引用/使用双指针

c - 通过初始化程序设置结构数组元素的语法?

c++ - 父进程和子进程中的全局变量

linux - 比较两个文件并在第二个文件中没有值时添加零

java - 如何使用 XmlStreamReader 将 XML 文件的全部内容作为字符串获取?

python - 调用 python 脚本时,它是否将完整的脚本加载到终端/命令提示符中?

c - 通过USART将数据从atmega324p发送到arduino