日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

有名管道(二)

發(fā)布時(shí)間:2023/11/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有名管道(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

一、從FIFO中讀取數(shù)據(jù):

約定:如果一個(gè)進(jìn)程為了從FIFO中讀取數(shù)據(jù)而以阻塞的方式打開FIFO,則稱內(nèi)核為該進(jìn)程的讀操作設(shè)置了阻塞標(biāo)志。

  • 如果有進(jìn)程為寫而打開FIIF(寫端存在),且當(dāng)前FIFO內(nèi)沒有數(shù)據(jù),則對于設(shè)置了阻塞標(biāo)志的讀操作來說,將一直阻塞,對于沒有設(shè)置阻塞標(biāo)志讀操作來說返回-1,當(dāng)前errno值為EAGAIN提醒以后再試。
  • 對于設(shè)置阻塞標(biāo)志的讀操作來說,造成阻塞的原因有兩種,當(dāng)前FIFO內(nèi)有數(shù)據(jù),但其他進(jìn)程正在讀這些數(shù)據(jù);另外FIFO內(nèi)沒有數(shù)據(jù)。解阻塞的原因則是FIFO中有新的數(shù)據(jù)寫入,不論寫入數(shù)據(jù)量的大小,也不論讀操作請求多少數(shù)據(jù)量。
  • 如果沒有進(jìn)程寫打開FIFO,則設(shè)置了阻塞標(biāo)志的讀操作會(huì)阻塞。
  • 如果寫端關(guān)閉,管道中有數(shù)據(jù)讀取管道中的數(shù)據(jù),如果管道沒有數(shù)據(jù)讀端將不會(huì)繼續(xù)阻塞,此時(shí)返回0。(注意:如果FIFO有數(shù)據(jù),則設(shè)置了阻塞標(biāo)志的讀操作來說不會(huì)因?yàn)镕IFO的字節(jié)數(shù)小于請求讀的字節(jié)數(shù)而阻塞,讀操作會(huì)返回FIFO現(xiàn)有的數(shù)據(jù)量。)

?

二、向FIFO中寫入數(shù)據(jù)

約定:如果一個(gè)進(jìn)程為了向FIFO中寫入數(shù)據(jù)而阻塞打開FIFO,那么稱該進(jìn)程內(nèi)的寫操作設(shè)置了阻塞標(biāo)志。

1. 對于設(shè)置了阻塞標(biāo)志的寫操作:

  • 當(dāng)寫入數(shù)據(jù)量不大于PIPE_BUF時(shí),linux將保證寫入的原子性,如果此時(shí)管道空閑緩沖區(qū)不足以容納要寫入的字節(jié)數(shù),則進(jìn)入睡眠,直到緩沖區(qū)中能夠?qū)懭氲淖止?jié)數(shù),才開始進(jìn)行一次性寫操作。
  • 當(dāng)要寫入的數(shù)據(jù)量大于PIPE_BUF時(shí),Linux將不再保證寫入的原子性。FIFO緩沖區(qū)一有空閑,寫進(jìn)程就會(huì)試圖向管道寫入數(shù)據(jù),寫操作在寫完所有請求寫的數(shù)據(jù)后返回。

2. 對于沒有設(shè)置阻塞標(biāo)志的寫操作:

  • 當(dāng)要寫入的數(shù)據(jù)量大于PIPE_BUF時(shí),Linux將不再保證寫入的原子性。在寫滿所有FIFO空閑緩沖區(qū)后,寫操作返回。
  • 當(dāng)要寫入的數(shù)據(jù)量不大于PIPE_BUF時(shí),linux將保證寫入的原子性,如果當(dāng)前FIFO空閑緩沖區(qū)能夠容納寫入的字節(jié)數(shù),寫完成功返回;如果當(dāng)前FIFO空閑緩沖區(qū)不能容納請求寫入的字節(jié)數(shù),則返回EANGIN錯(cuò)誤,提醒以后再寫。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的有名管道(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。