Файлы - это просто массивы байтов. Итак, чтобы содержать файл в исполняемом файле, вам просто нужен массив, который содержит байты файла:
unsigned char file_content[] = {
0x23, 0x20, 0x46, 0x6c, ...
};
Существуют инструменты для генерации такого объявления из входного файла (xxd -i
). Также довольно тривиально написать такой инструмент самостоятельно.
Другой способ - внедрить файл на этапе компоновки. Недостаток этого подхода заключается в том, что он очень специфичен для инструментария c.
Однако учтите, что чтение отдельного файла во время выполнения обычно проще и обеспечивает большую гибкость.
Также предлагается добавить стандартную функцию для этого P1040R4 , которая может быть доступна в будущем стандарте C ++