<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    重定向和管道的實現(xiàn)

    Posted on 2008-02-29 11:16 dennis 閱讀(926) 評論(0)  編輯  收藏 所屬分類: linux & C
    重定向標準輸入的實現(xiàn):
    1)close-then-open: close(0) ; fd=open("test",O_RDONLY); fd將是stdin。
    2)open-close-dup-close:
    fd=open(file),打開stdin將要重定向的文件;close(0);new_fd=dup(file);close(fd);new_fd就是被重定向的stdin
    3)open-dup2-close:
    fd=open(file);new_fd=dup2(fd,0);close(fd);

    重定向標準輸出的實現(xiàn):
      父進程fork();子進程close(1);create("g",0644),此時子進程的stdout被重定向到g;接下來子進程exec某個程序,文件描述符屬于進程屬性,exec調(diào)用不會改變他們,那么運行的程序的標準輸出將被送到g,由此實現(xiàn)了標準輸出重定向。

    本質(zhì)上重定向的實現(xiàn)是依賴兩個原則:
    1、標準輸入、標準輸出和標準錯誤分別是0、1和2
    2、最低可用描述符:打開文件時,為此文件安排的描述符總是進程內(nèi)打開文件數(shù)組的最低可用位置的索引。

    管道:
      匿名管道:適合于有親緣關(guān)系的進程,通過pipe函數(shù)實現(xiàn)。
      有名管道:通過mkfifo函數(shù)實現(xiàn),實現(xiàn)進程間的雙向通訊可以采用兩個有名管道實現(xiàn),也可以采用socketpair調(diào)用。
    主站蜘蛛池模板: 亚洲精品精华液一区二区| 在线观看亚洲专区| 在线亚洲人成电影网站色www| 免费h片在线观看网址最新| 久久国产美女免费观看精品| 国产精品亚洲lv粉色| 亚洲人成网男女大片在线播放 | 亚洲伊人久久大香线蕉苏妲己| 亚洲av无码乱码在线观看野外 | 337p日本欧洲亚洲大胆艺术| 亚洲一区二区三区自拍公司| 国产亚洲精品免费| 好爽…又高潮了免费毛片| 国产精品爱啪在线线免费观看| 国产无遮挡无码视频免费软件| 国产成人无码精品久久久免费| 国产在亚洲线视频观看| 亚洲精品国产高清在线观看| 亚洲精品二三区伊人久久| 亚洲精品不卡视频| 亚洲精品国产手机| 亚洲综合男人的天堂色婷婷| 精品无码一区二区三区亚洲桃色| 亚洲国产精品va在线播放| 亚洲精品无码成人片久久| 亚洲欧洲自拍拍偷午夜色无码| 久久久久亚洲精品无码网址| 亚洲成年人啊啊aa在线观看| 四只虎免费永久观看| 免费精品国产自产拍观看| 四虎永久免费观看| 亚洲国产精品自产在线播放| 亚洲成a人片在线观看日本麻豆 | 亚洲性无码一区二区三区| 亚洲日韩精品国产一区二区三区| 亚洲中文无码亚洲人成影院| 91在线亚洲综合在线| 亚洲AV性色在线观看| 牛牛在线精品免费视频观看| fc2成年免费共享视频网站| 2022国内精品免费福利视频 |