青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

c++實(shí)例研究

從0開始

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  104 隨筆 :: 0 文章 :: 20 評(píng)論 :: 0 Trackbacks
輸出緩沖區(qū)
先來看以下一段代碼(test.c):

  1 #include<stdio.h>
  2 #include<sys/types.h>
  3
  4 int main()
  5 {
  6     pid_t pid;
  7     fprintf(stdout,"%s","Start fork...");
  8     pid = fork();
  9     switch(pid)
 10     {
 11     case -1:
 12         break;
 13     case 0:
 14         printf("%s","Child process.\n");
 15         break;
 16     default:
 17         printf("%s","Parent process.\n");
 18         break;
 19     }
 20     return 0;
 21 }


編譯執(zhí)行:

$gcc -o test test.c
$./test
Start fork...Child process.
Start fork...Parent process.

   出乎意料的是,為什么"Start fork..."輸出了兩次呢?子進(jìn)程是從fork之后的語句開始執(zhí)行的,那么多出來那個(gè)"Start fork..."是哪里來的呢?

先了解一下緩沖區(qū):

  這個(gè)緩沖區(qū)既不是內(nèi)核中的緩沖區(qū),也不是用戶分配的緩沖區(qū),而是有編譯器維護(hù)的用戶進(jìn)程空間中的緩沖區(qū).緩沖區(qū)類型有:全緩沖(大部分緩沖都是這類型)、行緩沖、無緩沖。

  標(biāo)準(zhǔn)里沒有規(guī)定各種流是什么緩沖,stderr和stdout是哪種緩沖類型是和環(huán)境相關(guān)的。 stderr 可能是無緩沖、行緩沖,但不能是全緩沖。stdin 和 stdout 可能是無緩沖、行緩沖,也可能是全緩沖。不過,stdin 和 stdout 如果分別是指鍵盤和顯示器等交互設(shè)備(interactive device)的話,那么只能是無緩沖或行緩沖。

  默認(rèn)情況下,printf()在屏幕輸出的時(shí)候是行緩沖的,所以父進(jìn)程在執(zhí)行了第一個(gè)printf語句后,"Start fork..."還保存在緩沖區(qū)中,執(zhí)行fork的時(shí)候,父進(jìn)程緩沖區(qū)的數(shù)據(jù)也被復(fù)制到子進(jìn)程中,子進(jìn)程在刷新緩沖區(qū)的時(shí)候,輸出了從父進(jìn)程復(fù)制來的"Start fork..."。
 
下面對(duì)程序進(jìn)行一些修改:
1、如果把第7句改為:
fprintf(stdout,"%s","Start fork...\n");
$./test
Start fork...
Child process.
Parent process.
說明當(dāng)前環(huán)境下printf是行緩沖的。

把修改過的程序的執(zhí)行結(jié)果重定向到文件中:
$./test > temp
$cat temp
Start fork...
Child process.
Start fork...
Parent process.
這說明將printf輸出結(jié)果重定向到文件的時(shí)候就變了全緩沖.

2、如果在第7行以后加入一句:
fflush
(stdout);

$./test > temp
$cat temp
Start fork...
Child process.
Parent process.
我們用fflush強(qiáng)制刷新緩沖區(qū),這樣父進(jìn)程緩沖區(qū)被清空。我們在fork之前一般都要用fflush(NULL)清空所有流。

3、我們把第7句改為:
fprintf(stderr,"%s","Start fork...");
$./test > temp
Start fork...
$cat temp
Child process.
Parent process.

把修改過的程序的執(zhí)行結(jié)果重定向到文件,把標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出:
$./test > temp 2>&1
$cat temp
Start fork...
Child process.
Parent process.
表明當(dāng)前環(huán)境stderr的默認(rèn)目標(biāo)是終端,而且是不緩沖的.

4、如果我們在第7句之前加入:
setvbuf
(stdout, NULL, _IONBF, 0);
設(shè)置標(biāo)準(zhǔn)輸出為無緩沖。
$./test > temp
$cat temp
Start fork...
Child process.
Parent process.
posted on 2010-06-01 11:26 elprup 閱讀(497) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 工程問題集
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            狠狠干综合网| 伊人久久大香线蕉综合热线| 免费看的黄色欧美网站| 欧美色精品天天在线观看视频| 国产一区二区精品久久91| 99精品国产高清一区二区| 另类国产ts人妖高潮视频| 亚洲欧美成人在线| 国产精品每日更新在线播放网址| av成人毛片| 亚洲片在线资源| 久久精品亚洲一区二区三区浴池| 国产精品三区www17con| 亚洲午夜电影网| 日韩视频免费| 欧美日韩一区二区三区免费| 99国产精品国产精品毛片| 亚洲高清精品中出| 久久久久一区二区三区| 伊人成综合网伊人222| 久久九九久精品国产免费直播| 亚洲欧美日韩中文播放| 国产欧美69| 久久久久se| 久久久夜色精品亚洲| 在线观看欧美成人| 久久天堂av综合合色| 亚洲综合社区| 久久精品国产亚洲精品| 亚洲男人天堂2024| 国产欧美精品va在线观看| 久久久www免费人成黑人精品| 欧美一区二区三区男人的天堂| 国产一区日韩二区欧美三区| 六月婷婷久久| 欧美好骚综合网| 亚洲午夜在线| 性亚洲最疯狂xxxx高清| 在线观看欧美| 中文网丁香综合网| 激情综合视频| 亚洲欧洲中文日韩久久av乱码| 欧美日韩三级视频| 亚洲免费在线观看| 久久国产欧美| 国产精品福利网站| 玖玖在线精品| 欧美人与禽猛交乱配视频| 亚洲欧美日韩国产综合| 久久久久国产精品一区三寸| 亚洲国产精品久久久久婷婷884| 最新国产の精品合集bt伙计| 国产精品久久久久久亚洲毛片| 久久久久久成人| 欧美日韩91| 久久伊人一区二区| 欧美喷潮久久久xxxxx| 欧美一级免费视频| 免费成人高清| 久久精品av麻豆的观看方式| 欧美激情一级片一区二区| 午夜一区不卡| 欧美另类视频在线| 久久综合狠狠| 国产精品一区二区在线观看| 亚洲国产精品一区制服丝袜| 国产精品自拍三区| 亚洲国产综合91精品麻豆| 国产欧美一区二区视频| 日韩一级在线观看| 国产精品午夜春色av| 亚洲国产精品一区二区尤物区| 国产婷婷色一区二区三区四区| 亚洲国产老妈| 91久久久久| 久久亚洲精品一区| 久久国产综合精品| 欧美午夜电影在线| 亚洲国产精品v| 亚洲国产精品ⅴa在线观看| 欧美一区在线看| 久久成人精品视频| 蜜臀av国产精品久久久久| 久久婷婷久久| 国产亚洲精品久| 亚洲女爱视频在线| 午夜精品视频网站| 国产精品国产三级国产专区53| 亚洲人成在线播放| 亚洲国产高清自拍| 老色鬼精品视频在线观看播放| 久久久蜜桃一区二区人| 国产精品日韩欧美综合| 久久综合久久综合九色| 国产精品入口麻豆原神| 亚洲视频狠狠| 亚洲综合色视频| 欧美性猛交xxxx免费看久久久| 亚洲日本中文| av成人免费在线观看| 欧美激情一区二区三区在线视频| 欧美激情精品久久久久久变态| 亚洲国产精品99久久久久久久久| 老鸭窝91久久精品色噜噜导演| 欧美ab在线视频| 亚洲精品久久| 欧美日韩卡一卡二| 99在线热播精品免费99热| 亚洲天堂av在线免费观看| 国产精品国产三级国产专播精品人 | 久久午夜电影| 伊人男人综合视频网| 免费不卡中文字幕视频| 亚洲精品小视频| 亚洲一区精彩视频| 国产啪精品视频| 久久视频在线免费观看| 亚洲国产精品电影在线观看| 99爱精品视频| 国产亚洲精品7777| 免费中文字幕日韩欧美| 亚洲美女在线视频| 久久精品一区二区| 最新亚洲电影| 国产精品一区二区在线观看不卡| 欧美伊人影院| 亚洲国产精品激情在线观看| 亚洲欧美日韩国产一区二区三区| 国产嫩草一区二区三区在线观看| 午夜精品av| 亚洲韩日在线| 性欧美办公室18xxxxhd| 亚洲国产va精品久久久不卡综合| 欧美人交a欧美精品| 欧美亚洲自偷自偷| 91久久夜色精品国产九色| 小处雏高清一区二区三区 | 亚洲黄色av| 欧美一区二区三区四区在线| 黄色一区二区在线| 欧美日韩美女在线| 久久九九99| 亚洲国产精品欧美一二99| 亚洲欧美激情视频| 激情欧美日韩一区| 欧美日韩直播| 欧美xxxx在线观看| 亚洲一级网站| 亚洲福利久久| 午夜精品久久久久久久白皮肤| 亚洲国产精品激情在线观看| 久久久精品2019中文字幕神马| 亚洲自拍另类| 亚洲国产视频a| 国产精品国产三级国产aⅴ9色| 欧美在线|欧美| 99热精品在线观看| 欧美18av| 香蕉久久精品日日躁夜夜躁| 欧美国产综合| 免费精品视频| 亚洲影视在线播放| 欧美大色视频| 欧美专区中文字幕| 亚洲在线1234| 亚洲伦理在线| 伊人色综合久久天天五月婷| 国产精品多人| 国产精品美女久久久久久2018 | 久久久久久一区二区三区| 亚洲欧美电影在线观看| 最新日韩av| 免费一区二区三区| 久久久久久亚洲精品中文字幕| 激情久久久久久久| 国产亚洲福利| 国产精品久久久一区二区三区| 欧美sm视频| 久久一本综合频道| 欧美专区亚洲专区| 午夜精品福利视频| 99精品视频免费观看视频| 亚洲第一在线视频| 亚洲成人在线视频播放| 欧美一级视频精品观看| 亚洲国产专区校园欧美| 国内精品久久久久久| 国产日韩欧美三级| 国产伦精品一区二区三区高清| 国产欧美91| 国产视频一区在线| 国产婷婷精品| 国产精品视频xxx| 国产精品美女久久福利网站| 国产精品爱啪在线线免费观看 | 国产酒店精品激情| 老色批av在线精品| 欧美日韩aaaaa| 欧美日韩一区不卡| 欧美午夜一区二区福利视频|