системный вызов для отображения памяти на дескриптор файла (инверсия mmap)?

Я хочу смочь отобразить память на дескриптор файла, таким образом, я могу использовать некоторые существующие функции, для которых нужен дескриптор файла. Вот по существу, что я ищу:

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 ... */

Какой системный вызов или вызовы, я могу использовать для выполнения этого?

6
задан Kaleb Pederson 12 May 2010 в 19:18
поделиться

1 ответ

В некоторых реализациях есть fmemopen(). (Тогда, конечно, вы должны вызвать fileno()).

Если в вашем нет, вы можете создать его самостоятельно с помощью fork() и pipe().

7
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: