<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)用。
    主站蜘蛛池模板: 成人精品综合免费视频| 色偷偷噜噜噜亚洲男人| 一级毛片**不卡免费播| 亚洲国产精品无码久久久蜜芽| 一级免费黄色毛片| 亚洲色偷偷狠狠综合网| 成在线人视频免费视频| 国产偷v国产偷v亚洲高清| 久久aⅴ免费观看| 亚洲电影在线播放| 成熟女人特级毛片www免费| 国产亚洲欧美在线观看| 亚洲第一页日韩专区| 中文字幕不卡高清免费| 亚洲日本中文字幕区| 永久免费的网站在线观看| 亚洲欧美日韩中文字幕在线一区| 啦啦啦www免费视频| 男女猛烈激情xx00免费视频| 亚洲中文字幕在线乱码| 精品国产一区二区三区免费| 亚洲国产日产无码精品| 日本a级片免费看| A级毛片成人网站免费看| 久久国产亚洲精品无码| 成人免费看黄20分钟| 一个人免费观看视频在线中文 | 4399影视免费观看高清直播| 中文字幕亚洲综合小综合在线| 香蕉视频在线观看免费国产婷婷 | 亚洲爱情岛论坛永久| 成人毛片视频免费网站观看| 搜日本一区二区三区免费高清视频| 精品亚洲一区二区| 全免费一级午夜毛片| 男女一进一出抽搐免费视频 | 免费看内射乌克兰女| 内射少妇36P亚洲区| 国产在线播放免费| 久久久精品2019免费观看| 亚洲av乱码一区二区三区按摩|