没有合适的资源?快使用搜索试试~ 我知道了~
- IPC对象(消息队列、共享内存和信号量)存在于内核而不是文件系统中,由用户控制释放(用户管理IPC对象的生命周期),不像管道的释放由内核控制。 - IPC对象通过其标识来引用和访问,所有的IPC对象在内核空间中唯一性标识ID,在用户空间中的唯一性标识称为Key. - IPC对象是全局对象,可以通过ipcs,ipcrm等命令来查看或删除 - 每个IPC对象都由get函数创建
资源推荐
资源详情
资源评论
System V IPC
概
述
消
息
队
列
创
建
或打
开
消
息
队
列
消
息
控
制
发
送
消
息
接
收
消
息
发
送
消
息
⽰
例
:
共
享
内
存
创
建
共
享
内
存
共
享
内
存
控
制
共
享
内
存
映
射
和
解
除
映
射
共
享
内
存
使
⽤
⽰
例
:
信
号
量
进
程
间
信
号
量
创
建
信
号
量
集
信
号
量
集
控
制
信
号
量
集
操
作
信
号
量
模
块
封
装
⽰
例
:
@author Jerry Wan
QQ:564631192
System V IPC
概
述
System V
引
⼊
了
三
种
⾼
级
进
程
间
通
信
机
制
1.
消
息
队
列
、
共
享
内
存
和
信
号
量
IPC
对
象
(
消
息
队
列
、
共
享
内
存
和
信
号
量
)
存
在
于
内
核
⽽
不
是
⽂
件
系
统
中
,
由⽤
⼾
控
制
释
放
(
⽤
⼾
管
理
IPC
对
象
的
⽣
命周
期
)
,
不
像
管
道
的
释
放
由
内
核
控
制
。
IPC
对
象
通
过
其
标
识
来
引
⽤
和
访
问
,
所
有
的
IPC
对
象
在
内
核
空
间
中
唯
⼀
性
标
识
ID
,
在
⽤
⼾
空
间
中
的
唯
⼀
性
标
识
称
为
Key.
IPC
对
象
是
全
局对
象
,
可
以
通
过
ipcs
,
ipcrm
等
命
令
来
查
看
或
删
除
每
个
IPC
对
象
都
由
get
函
数
创
建
1. msgget,shmget,semget
,
调
⽤
get
函
数
时
必
须
指
定
关
键
字
key
andrew@andrew-Thurley:/work/linux-sys$ ipcs
---------
消
息
队
列
-----------
键
msqid
拥
有
者
权
限
已
⽤
字
节
数
消
息
------------
共
享
内
存
段
--------------
键
shmid
拥
有
者
权
限
字
节
连
接
数
状
态
0x00000000 884736 andrew 600 16777216 2
0x00000000 786433 andrew 600 524288 2
⽬
标
0x00000000 983042 andrew 600 524288 2
⽬
标
0x00000000 655363 andrew 600 524288 2
⽬
标
1
2
3
4
5
6
7
8
9
10
11
消
息
队
列
消
息
队
列
是
内
核
中
的
⼀个
链
表
⽤
⼾
进
程
将
数
据
传
输
到
内
核
后
,
内
核
重
新
添
加
⼀
些
如
⽤
⼾
ID,
组
ID
,
读
写
进
程
的
ID
和
优
先
级
等
相
关
信
息
后
并
打成
⼀个
数
据
包
称
为
消
息
允
许
⼀个
进
程
或
者
多
个
进
程
往
消
息
队
列
中
写
消
息
和
读
消
息
,
但
⼀个
消
息
只
能
被
⼀个
进
程
读
取
,
读
取
完
毕
后
就
⾃
动
删
除
消
息
队
列
具
有
⼀
定
的
FIFO
的
特
性
,
消
息
可
以
按
照
顺
序
发
送
到
队
列
中
,
也
可
以
⼏
种
不
同
的
⽅
式
从
队
列
中
读
取
,
每
⼀个
消
息
对
垒
在
内
核
中
⽤
⼀个
唯
⼀
的
IPC
标
识
ID
表
⽰
消
息
队
列
的
实
现
包
括
创
建
和
打
开
队
列
、
发
送
消
息
、
读
取
消
息
和
控
制
消
息
队
列
四
中
操
作
创
建
或打
开
消
息
队
列
消
息
控
制
发
送
消
息
0x00000000 1933316 andrew 700 30072 2
⽬
标
0x00000000 1081349 andrew 600 524288 2
⽬
标
0x00000000 1409030 andrew 600 524288 2
⽬
标
0x00000000 1572871 andrew 600 524288 2
⽬
标
0x00000000 1835016 andrew 600 524288 2
⽬
标
0x51010013 1638409 andrew 600 1 1
0x00000000 1736714 andrew 600 268435456 2
⽬
标
0x00000000 2031627 andrew 600 524288 2
⽬
标
0x00000000 2064396 andrew 600 524288 2
⽬
标
0x00000000 2162701 andrew 600 524288 2
⽬
标
0x00000000 2195470 andrew 600 4194304 2
⽬
标
0x00000000 2326544 andrew 600 524288 2
⽬
标
0x00000000 2424849 andrew 600 524288 2
⽬
标
0x00000000 2555922 andrew 600 2097152 2
⽬
标
0x00000000 2850835 andrew 700 222828 2
⽬
标
---------
信
号
量
数
组
-----------
键
semid
拥
有
者
权
限
nsems
0x51010012 32768 andrew 600 1
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <sys/msg.h>
int msgget(key_t key, int flag);
返
回
:
成
功
返
回
内
核
中
消
息
队
列
的
标
识
ID
,
出
错
返
回
-1
1
2
3
#include <sys/msg.h>
int msgctl(int msgid, intcmd, struct msqid_ds *buf);;
返
回
:
成
功
返
回
0
,
出
错
返
回
-1
1
2
3
nbytes
指
定
消
息
的
⼤
⼩
,
不
包
括
mtype
的
⼤
⼩
mtype
指
消
息
的
类
型
,
它
由
⼀个
整数
来
代
表
,
并
且
它
只
能
是
⼤
于
0
的
整数
mtext
是
消
息
数
据
本
⾝
在
linux
中
,
消
息
的
最
⼤
⻓
度
是
4056
个
字
节
,
其
中
包
括
mtype
,
它
占
有
4
个
字
节
结
构
体
mymesg
⽤
⼾
可
⾃
定
义
,
但
第
⼀个
成
员
必
须
是
mytype
接
收
消
息
发
送
消
息
⽰
例
:
#include <sys/msg.h>
int msgsnd(int msgqid, const void *ptr, size_t nbytes,int flag);
返
回
:
成
功
返
回
0
,
出
错
返
回
-1
ptr:
struct mymesg{
long mytype;
char mtext[512];
}
1
2
3
4
5
6
7
8
#include <sys/msg.h>
ssize_t msgrcv(int msgqid, void *ptr,size_t nbytes,long type, int flag);
返
回
:
成
功
返
回
消
息
的
数
据
部
分
⻓
度
,
出
错
返
回
-1
type :
消
息
类
型
type == 0 : l
获
得
消
息
队
列
中
的
第
⼀个
消
息
type > 0 :
获
得
消
息
队
列
中
类
型
为
type
的
第
⼀个
消
息
type < 0 :
获
得
消
息
中
⼩
于
或
等
于
type
和
绝
对
值
的
消
息
`
1
2
3
4
5
6
7
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/msg.h>
typedef struct{
long type; //
消
息
类
型
int start; //
消
息
数
据
本
⾝
int end;
}MSG;
/**
*
往
消
息
队
列
中
发
送
消
息
*/
int main(int argc, char *argv[])
{
if(argc < 2){
printf("usage: %s key \n", argv[0]);
exit(1);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
剩余13页未读,继续阅读
资源评论
Achou.Wang
- 粉丝: 2402
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功