数码资讯
linux共享内存编程示例
本文主要介绍linux共享内存编程的例子。本文阐述了共享内存的概念、实现步骤和编码实例。 第一,概念 共享内存是由多个进程共享的物理内存的一部分,是进程间共享数据的最快方式。 两。实现 它分为两个步骤: 1。创建共享内存。 2、映射共享内存。 1。 复制代码代码如下所示: Int shmget(ke
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文主要介绍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 }。
第一,概念
共享内存是由多个进程共享的物理内存的一部分,是进程间共享数据的最快方式。
两。实现
它分为两个步骤:
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 }。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。