linuxC消息队列 mq_open() mq_send() mq_receive() mq_notify()
生活随笔
收集整理的這篇文章主要介紹了
linuxC消息队列 mq_open() mq_send() mq_receive() mq_notify()
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
消息隊(duì)列 讀和寫兩個(gè)進(jìn)程不需要同時(shí)出現(xiàn) (參考命名管道m(xù)kfifo)
Linux有POSIX和System V 兩種消息隊(duì)列
- POSIX消息隊(duì)列 打開消息隊(duì)列mq_open() 成功返回一個(gè)消息隊(duì)列描述符
-
name: 由“/”開頭、空字符"\0"結(jié)尾、中間最多包含255個(gè)不是“/”字符的字符串
-
oflag:訪問此消息隊(duì)列的模式,如O_RDONLY、O_CREAT(此時(shí)可加入O_EXCL)、OWRONLY、WRDWR
-
oflag值為O_CREAT需要后2個(gè)形參;mode為權(quán)限,與open()的mode一樣;attr表示消息隊(duì)列的性質(zhì),值為NULL表示新建消息隊(duì)列為默認(rèn)設(shè)置
-
attr結(jié)構(gòu)體
struct mq_attr {long mq_flags; //值為O_NONBLOCK 表示馬上返回不等待long mq_maxmsg; //包含的最大消息數(shù)量long mq_msgsize; //一條消息最大長(zhǎng)度,單位字節(jié)long mq_curmsgs; //新建隊(duì)列無意思 表示隊(duì)列中消息隊(duì)列數(shù)量 }
- 消息隊(duì)列 發(fā)送mq_send()、接收mq_receive() 信息
-
mqdes: 消息隊(duì)列描述符
msg_ptr: 發(fā)送/接收 消息的緩沖區(qū)指針
msg_len: 發(fā)送消息長(zhǎng)度 / 接收信息緩沖區(qū)長(zhǎng)度
msg_prio: 消息的優(yōu)先等級(jí)及用來存儲(chǔ)消息優(yōu)先等級(jí)的指針
- mq_notify() 進(jìn)程在獲得新消息時(shí)得到通知,無需等待或輪詢。消息隊(duì)列特有
- sevp結(jié)構(gòu)
總結(jié)
以上是生活随笔為你收集整理的linuxC消息队列 mq_open() mq_send() mq_receive() mq_notify()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1_Java语言概述
- 下一篇: 手机App三年内将彻底消失?