系统调用将内存映射到文件描述符(逆mmap)?

时间:2010-05-12 19:18:37

标签: c unix posix mmap system-calls

我希望能够将内存映射到文件描述符,以便我可以使用一些需要文件描述符的现有函数。这基本上就是我在寻找的东西:

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

我可以用什么系统调用或电话来完成此任务?

3 个答案:

答案 0 :(得分:7)

某些实现有fmemopen()。 (当然你必须打电话给fileno())。

如果您没有,则可以使用fork()pipe()自行构建。

答案 1 :(得分:3)

您应该查看shm_open()

答案 2 :(得分:2)