当前位置:  开发笔记 > 编程语言 > 正文

将指针传递给使用exec()生成的进程

如何解决《将指针传递给使用exec()生成的进程》经验,为你挑选了1个好方法。

我想传递一个指针(我将一个带有mmap的数据存储在内存中的文件)到使用fork + exec生成的进程,但我仍然坚持如何将指针传递给exec()生成的进程?

UPDATE1:

感谢您的输入,我使用共享内存创建它与mmap与MAP_INHERIT标志:

使用mmap()函数创建的每个映射文件和共享内存区域都是通过成功调用任何exec函数而取消映射的,除了那些使用MAP_INHERIT选项映射的区域.使用MAP_INHERIT选项映射的区域仍保留在新过程映像中.

来源:http://www.uwm.edu/cgi-bin/IMT/wwwman?topic=exec(2)&msection=

UPDATE2:

这是家庭作业练习,但我想我必须停止思考指针并思考IPC本身.我想我会尝试在子进程中映射相同的文件.

短代码示例非常感谢.

在此先感谢您的帮助.



1> Johannes Sch..:

如果使用共享内存,则无法传递指针.指针将包含虚拟地址,该地址不同于一个进程.您必须根据共享内存区域的开头交换偏移值.

如果不使用共享内存,则无法交换任何类型的指针:其他进程将无法访问进程的内存.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有