如何在Linux中使用C共享内存
|
我的一个项目有一个问题。
我一直试图找到一个很好的文档示例,将共享内存与ѭ0一起使用,但没有成功。
基本上情况是,当用户启动程序时,我需要在共享内存中存储两个值:current_path,它是一个char *; file_name,它也是char *。
根据命令参数,以“ 0”开始一个新进程,该进程需要读取和修改共享内存中存储的current_path变量,而file_name变量为只读。
是否有关于共享内存的很好的教程,并带有示例代码(如果可能),您可以将其引导至?
谢谢,
bleepzter
没有找到相关结果
已邀请:
5 个回复
渴翅吮斡撤
和
。我将讨论
,因为它更现代,更灵活,但是如果您想使用老式工具,可以看看
(或本教程)。 “ 6”功能可用于分配具有高度可自定义参数的内存缓冲区,以控制访问和权限,并在必要时通过文件系统存储支持它们。 以下函数创建一个内存缓冲,进程可以与其子进程共享该缓冲区:
下面是一个示例程序,该程序使用上面定义的功能来分配缓冲区。父进程将编写一条消息,进行分叉,然后等待其子进程修改缓冲区。这两个进程都可以读取和写入共享内存。
细屠截殴些
脚步 : 使用ftok将路径名和项目标识符转换为System V IPC密钥 使用shmget分配共享内存段 使用shmat将shmid标识的共享内存段附加到调用进程的地址空间 在存储区上进行操作 使用shmdt分离
筷啸够对铅
瓜唱鬼
栖很钾是狠