Одна обычная вещь, которую вы можете сделать, это представить данные файла в виде массива статических байтов:
// In a header file:
extern const char file_data[];
extern const size_t file_data_size;
// In a source file:
const char file_data[] = {0x41, 0x42, ... }; // etc.
const size_t file_data_size = sizeof(file_data);
Тогда данные файла будут просто глобальным массивом байтов, скомпилированным в ваш исполняемый файл, на который вы можете ссылаться где угодно. Вам придется либо переписать код обработки файла, чтобы иметь возможность обрабатывать необработанный байтовый массив, либо использовать что-то вроде fmemopen(3)
, чтобы открыть дескриптор псевдо-файла из данных и передать его код обработки файлов.
Конечно, чтобы получить данные в этой форме, вам нужно будет использовать какой-то шаг предварительной обработки, чтобы преобразовать файл в байтовый массив, который может принять компилятор. Makefile был бы хорош для этого.