Linux进程通信之共享内存

1.     共享内存

1)     概念:是被多个进程共享的一段物理内存,是共享数据最快的方法

2)     实现的步骤:

(一)  创建共享内存,使用shmget函数

int shmget ( key_tkey, int size, int shmflg );

       返回值:如果成功,返回共享内存段标识符。

       如果失败,则返回- 1:

       errno = EINVAL (无效的内存段大小)

                EEXIST (内存段已经存在,无法创建)

                EIDRM (内存段已经被删除)

                ENOENT (内存段不存在)

                EACCES (权限不够)

                ENOMEM (没有足够的内存来创建内存段)

(二)  映射共享内存,使用shmat函数

原型:int shmat ( int shmid, char *shmaddr, int shmflg);

       返回值:如果成功,则返回共享内存段连接到进程中的地址。

       如果失败,则返回- 1:

       errno = EINVAL (无效的IPC ID 值或者无效的地址)

                ENOMEM (没有足够的内存)

                EACCES (存取权限不够)

 

(三)  删除共享内存,使用shmdt函数

系统调用:shmdt();

调用原型:int shmdt( char *shmaddr );

       返回值:如果失败,则返回- 1:

              errno= EINVAL (无效的连接地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值