目录
本文纯粹就是小杰对于自己学完Linux操作系统之后回过头来对于Linux中的核心重点知识的一个梳理.
小杰会尽量地将其梳理清楚, 大家一起学习,共同进步, 知识不分高低, 计算机的学习小杰认为也是一个 量变 ---> 质变 的过程
天道酬勤, 水滴石穿, 在不同的阶段就干好自己当前阶段力所能及之事, 至少是没有在寝室的床上瘫着消磨时光 -------- 愿大家都学有所成,所获
必备IPCS命令解析
-
ipcs
功能 : 查看 system V IPC进程间通信设施的信息
常用选项
-a : 查看所有通信设施信息, 不加选项默认-a
-m : 指定查看共享内存
-q : 指定查看消息队列
-s : 指定查看信号量

-
ipcrm
功能:删除System V进程间通信(IPC)对象和关联的数据结构
使用方式: ipcrm 选项 id号
常用选项
-m : 删除共享内存
-q : 删除消息队列
-s : 删除信号量
eg : 指定删除shmid = 18 和 msqid = 8的 IPC对象.

Linux IPC消息队列
消息队列提供了一个进程向另外一个进程传输一个数据块的方法
消息队列优势: 对比管道通信来看
- 避免了管道通信的同步阻塞问题 eg : 读进程从管道中读取数据, 但是管道中并没有数据可读, 此刻读进程就需要同步阻塞等待写进程写入数据.
- 消息队列不必像管道那样先进先出的接收数据了, 消息队列可以根据类型(type值)来有选择地接收数据
-
msgget
函数功能: 创建一个全局消息队列IPC对象. (内核数据结构)
参数分析: key 唯一标识, 唯一标识一个全局的消息队列. msgflg指定权限
返回值: 成功返回一个正整数, 代表消息队列的句柄, 失败返回 -1,并且设置errno
插一个权限介绍: r : 读权限 w : 可写权限 X : 可执行权限. 所谓的9位权限标识位, 就是针对: 文件拥有者, 文件拥有组人员, 其他人员的访问权限的限制
-
msgsnd

函数功能:发送一条消息到消息队列中
参数分析:
- msqid 之前msgget返回的消息队列句柄
- msgp 指针, 指向待发送的一条消息结构体, 结构体形式如下
- msgsz 消息正文的存储空间, 最多可以存下msgsz个字节的正文
- msgflg 控制发送消息的形式 eg: 常用的 IPC_NOWAIT 表示非阻塞发送, 意思就是说正常没有设置非阻塞的情况下, 如果消息队列满了, 就会阻塞等待, 但是设置了IPC_NOWAIT则会立刻返回, 并且设置errno = EAGAIN
struct msgbuf {
long mtype; /* message type, must be > 0 */
char mtext[1]; /* message data */
};
//我们必须按照这个形式设置msgbuff
返回值:成功返回 0, 失败返回 -1 并且设置errno
- <

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



