IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > IPC機(jī)制之管道

IPC機(jī)制之管道 時間:2018-12-17      來源:華清遠(yuǎn)見

每個進(jìn)程各自有不同的用戶地址空間,任何一個進(jìn)程的全局變量在另一個進(jìn)程中都看不到,所以進(jìn)程之間要交換數(shù)據(jù)必須通過內(nèi)核,在內(nèi)核中開辟一塊緩沖區(qū),進(jìn)程1把數(shù)據(jù)從用戶空間拷到內(nèi)核緩沖區(qū),進(jìn)程2再從內(nèi)核緩沖區(qū)把數(shù)據(jù)讀走,內(nèi)核提供的這種機(jī)制稱為進(jìn)程間通信(IPC,InterProcess Communication)。

管道是一種最基本的IPC機(jī)制,由pipe函數(shù)創(chuàng)建:

int pipe(int filedes[2]);

調(diào)用pipe函數(shù)時在內(nèi)核中開辟一塊緩沖區(qū)(稱為管道)用于通信,它有一個讀端一個寫端,然后通過filedes參數(shù)傳出給用戶程序兩個文件描述符,filedes[0]指向管道的讀端,filedes[1]指向管道的寫端(很好記,就像0是標(biāo)準(zhǔn)輸入1是標(biāo)準(zhǔn)輸出一樣)。所以管道在用戶程序看起來就像一個打開的文件,通過read(filedes[0]);或者write(filedes[1]);向這個文件讀寫數(shù)據(jù)其實(shí)是在讀寫內(nèi)核緩沖區(qū)。pipe函數(shù)調(diào)用成功返回0,調(diào)用失敗返回-1。

管道具體的劃分為兩種:命令管道與匿名管道

1.命名管道(FIFO)

匿名管道應(yīng)用的一個限制就是只能在具有共同祖先(具有親緣關(guān)系)的進(jìn)程間通信。

如果我們想在不相關(guān)的進(jìn)程之間交換數(shù)據(jù),可以使用FIFO文件來做這項(xiàng)工作,它經(jīng)常被稱為命名管道。

命名管道可以從命令行上創(chuàng)建,命令行方法是使用下面這個命令:

$ mkfifo filename

命名管道也可以從程序里創(chuàng)建,相關(guān)函數(shù)有:

int mkfifo(const char *filename,mode_t mode);

2.匿名管道

匿名管道由pipe函數(shù)創(chuàng)建并打開。

命名管道由mkfifo函數(shù)創(chuàng)建,打開用open。

FIFO(命名管道)與pipe(匿名管道)之間唯一的區(qū)別在它們創(chuàng)建與打開的方式不同,這些工作完成之后,它們具有相同的語義。

3.命名管道的打開規(guī)則

如果當(dāng)前打開操作是為讀而打開FIFO時

O_NONBLOCK disable:阻塞直到有相應(yīng)進(jìn)程為寫而打開該FIFO

O_NONBLOCK enable:立刻返回成功

如果當(dāng)前打開操作是為寫而打開FIFO時

O_NONBLOCK disable:阻塞直到有相應(yīng)進(jìn)程為讀而打開該FIFO

O_NONBLOCK enable:立刻返回失敗,錯誤碼為ENXIO

需要注意的是打開的文件描述符默認(rèn)是阻塞的,大家可以寫兩個很簡單的小程序測試一下,主要也就一條語句

int fd = open("p2", O_WRONLY); 假設(shè)p2是命名管道文件,把打開標(biāo)志換成 O_RDONLY 就是另一個程序了,可以先運(yùn)行RD程序,此時會阻塞,再在另一個窗口運(yùn)行WR程序,此時兩個程序都會從open返回成功。非阻塞時也不難測試,open時增加標(biāo)志位就可以了。

 

上一篇:什么是Bootloader

下一篇:哈夫曼算法原理

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 微库仑硫氯分析仪-化学发光定氮仪-X荧光硫测定仪-泰州江河仪器有限公司 | 无锡心理咨询_江阴心理咨询_强迫症咨询_无锡笑一心理咨询有限公司 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 铁三角话筒-思美音频处理器-艾伦赫赛数字调音台-北京盛世音盟电子科技有限公司 | 全自动滤水器_射水抽气器_气液两相流疏水器-连云港神美电力辅机有限公司 | 连接器-连接线-连接器厂家-鑫鹏博20年高品质连接器生产厂家 | 上海婺川实业有限公司 | 消防排烟风机|3C排烟风机|正压送风机|高温排烟风机|柜式排烟风机-山东锦松环境设备有限公司 | 油罐_双层油罐_双层油罐厂家|值得信赖-泰安晟鼎金属容器制造有限公司 | 天然气车船展、氢能装备展、氢燃料汽车展、核电装备展、国防信息化装备展---北京企发展览服务有限公司 | 截止阀,电动,气动,手动,化工截止阀-上海申弘阀门有限公司 | 喜来顺财经-专注于财经领域的综合性网站 | 酒店宾馆一次性用品厂家-酒店洗漱用品,洗浴用品品牌方案-江苏欧佩 | 深圳起重机,龙门吊,天车起重工程,电动葫芦,液压升降货梯-深圳市德力起重机械有限公司 | 小型生活污水处理设备_MBR膜生物反应器_口腔医院/脱脂污水处理设备_酸洗磷化/喷涂废水处理设备-上海台江环保 | 全棉帆布厂家_加工帆布_涤棉帆布价格_染色帆布定制_广州美丽华皮革帆布-广州美丽华皮革帆布 | 无塔供水设备_无负压供水设备_变频供水设备_净化过滤设备_加油站油罐_S/F双层油罐_开封市东方供水设备有限公司 | 上海物流公司_上海冷链运输_空运_电商仓储配送电话-迈泽物流 | 液晶拼接屏_三星46寸/55寸/LG液晶拼接屏_深圳拼接墙厂家_电视大屏幕液晶拼接_高清工业级液晶监视器 | 外墙涂料_真石漆_真石漆批发_河南宝润达真石漆厂家 | 太原重卡叔叔运输有限公司-山西太原大件运输、太原物流公司、太原货运物流、太原大件运输、太原货运信息、长治物流公司、长治大件运输、晋城物流公司、晋城大件运输、忻州大件运输、朔州大件运输、阳泉大件运输、大同大件运输、吕梁大件运输、临汾大件运输、运城大件运城 | 实验室装修设计-实验室工程建设-实验室实验台通风柜-瑞斯达实验室系统设备(苏州)有限公司 | 耀美软瓷施工队-13638350103-专注于软瓷施工勾缝的贴软瓷施工队 - 软瓷,软瓷施工,软瓷勾缝,软瓷怎么施工,软瓷怎么勾缝,贴软瓷,软瓷施工队 | 卫生间隔断-东莞卫生间隔断-东莞卫生间隔断厂家-公共卫生间隔断-东莞市康丰家居建材有限公司 | 液压升降机_导轨式电动液压升降平台_别墅电梯生产厂家-海南重康升降机 | 览众房车,房车, 房车厂家, 房车价格, 房车图片,, 四驱房车, 皮卡房车, 越野房车, 依维柯房车, 国产房车, 自动挡房车, | 领先的一站式_专利申请代理知识产权服务平台_乐知网 | 推台锯_多片锯_圆木推台锯_方木多片锯_圆木多片锯-河北茂业机械有限公司 | 托普云农-数字农业综合服务商-官方网站 | 陕西散花照明-西安太阳能路灯,陕西太阳能路灯,西安太阳能路灯厂家,陕西太阳能路灯厂家 | 食用油灌装机-油类食用油灌装设备-液体灌装机_青州市惠联灌装机械 | -盐城市精工阀门有限公司| 做网站_网站建设_专业上海网站制作_网至普网站建设 | 芜湖人才网_芜湖招聘网_【官方网站】| 云南自考网_云南自学考试网 | 全网营销_网络推广外包_全网营销代运营公司-湖南微望互动 | 橡胶粉碎机_轮胎粉碎机_橡胶切条机_橡胶粉碎机价格_河南鑫世昌机械制造有限公司 | 语音芯片_蓝牙芯片_ble数传芯片_蓝牙数传模块厂家_拓达半导体-蓝牙数传芯片模块原厂 | 水平转头微孔板离心机-米欧微孔板离心机-北京乾明基因技术 | 推台锯_多片锯_圆木推台锯_方木多片锯_圆木多片锯-河北茂业机械有限公司 |