是否可以在 C 中伪造文件流,例如 stdin?

cla*_*iel 5 c embedded file-io

我正在开发一个没有文件系统的嵌入式系统,我需要执行从通过命令(如参数)指定的文件或直接从标准输入指定的文件中获取输入数据的程序。

我知道可以使用以下答案中的方法用二进制文件烘焙文件数据:C/C++ with GCC: Statically add resources file toexecutable/library但目前我需要重写所有程序来访问数据以一种新的方式。

例如,是否可以烘焙一个文本文件,并在运行程序时使用指向 stdin 的假文件指针来访问它?

Bas*_*tch 2

正如所评论的,您可以使用 POSIX fmemopen函数。您需要一个提供它的 libc ,例如musl-libc或可能的glibc。顺便说一句,出于基准测试的目的,您可以在硬件上安装一些类似 Linux 的小型操作系统,例如uclinux