Я хочу смочь отобразить память на дескриптор файла, таким образом, я могу использовать некоторые существующие функции, для которых нужен дескриптор файла. Вот по существу, что я ищу:
void do_operation1(int fd);
char data[DATA_MAX] = { /* embedded binary data */ };
int fd = addr_to_fd(data, DATA_MAX);
do_operation1(fd);
/* ... operate on fd ... */
Какой системный вызов или вызовы, я могу использовать для выполнения этого?
В некоторых реализациях есть fmemopen()
. (Тогда, конечно, вы должны вызвать fileno()
).
Если в вашем нет, вы можете создать его самостоятельно с помощью fork()
и pipe()
.