linux共享内存编程示例

linux共享内存编程示例
本文主要介绍linux共享内存编程的例子。本文阐述了共享内存的概念、实现步骤和编码实例。
第一,概念

共享内存是由多个进程共享的物理内存的一部分,是进程间共享数据的最快方式。

两。实现

它分为两个步骤:
1。创建共享内存。
2、映射共享内存。
1。

复制代码代码如下所示:
Int shmget(key_t关键尺寸、int shmflg)

当关键的价值是ipc_private,一个新的共享内存将被创建。Shmflg将至少s_irusr | s_iwusr或会出现读写错误。内存标识符返回成功和失败,返回1。
2。映射

复制代码代码如下所示:
Int shmat(int shmid,char * shmaddr,中断标志)

shmaddr是共享内存的起始地址。旗帜的运作模式来记忆。常用的命令可以写成:shmat(shmid,null,0);

成功返回到共享内存的起始地址,并且未能返回到1。

三。实例

复制代码代码如下所示:
#包括
#包括
#包括
#包括
#包括
#定义s_irusr | s_iwusr烫发
int main(int argc、argv { } { char *)
Int shmid;
pid_t PID;
如果(argc!= 2){
printf(用法:Design {串} ;
返回- 1;
}
如果((shmid = shmget(ipc_private、1024、烫发))<0){
printf(共享内存创建错误!;
(1)_exit;
}
字符*;
PID =叉();
如果(PID = 0){
睡眠(1);
P = shmat(shmid,null,0);
memset(P, 0 ',1024);
Strcpy(P,argv { 1 });
printf(已经写!!!它是%s
}
别的{
等待(NULL);
P = shmat(shmid,null,0);
printf(从内存中读取%s
}
返回0;
}
子进程写入argv { 1 },和父进程的输出参数值{ 1 }。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部