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

c++實(shí)例研究

從0開(kāi)始

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  104 隨筆 :: 0 文章 :: 20 評(píng)論 :: 0 Trackbacks
輸出緩沖區(qū)
先來(lái)看以下一段代碼(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之后的語(yǔ)句開(kāi)始執(zhí)行的,那么多出來(lái)那個(gè)"Start fork..."是哪里來(lái)的呢?

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

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

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

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

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

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

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

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

把修改過(guò)的程序的執(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、如果我們?cè)诘?句之前加入:
setvbuf
(stdout, NULL, _IONBF, 0);
設(shè)置標(biāo)準(zhǔn)輸出為無(wú)緩沖。
$./test > temp
$cat temp
Start fork...
Child process.
Parent process.
posted on 2010-06-01 11:26 elprup 閱讀(497) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 工程問(wèn)題集
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区二区三区免费观看| 亚洲美女视频网| 黄色成人在线网站| 国产女主播一区| 国产亚洲激情在线| 校园春色综合网| 亚洲欧洲一区二区三区| 国外视频精品毛片| 欧美精品一卡二卡| 久久精品中文字幕一区| 亚洲乱码国产乱码精品精天堂| 亚洲毛片av| 国语自产偷拍精品视频偷 | 一本在线高清不卡dvd| 国产精品一卡| 欧美午夜精品| 久久久久久久综合色一本| 久久久久一区二区三区| 亚洲一区二区成人| 一本大道久久精品懂色aⅴ| 一区国产精品| 国产亚洲精品v| 国内久久婷婷综合| 亚洲综合日韩在线| 一个色综合导航| 亚洲视频高清| 亚洲午夜激情免费视频| av成人毛片| 伊人久久综合97精品| 国产曰批免费观看久久久| 国产三区精品| 在线观看91精品国产麻豆| 在线不卡中文字幕| 99国产一区| 欧美专区日韩视频| 久久天堂成人| 亚洲国产日韩欧美在线99| 亚洲精品国产系列| 久久aⅴ国产欧美74aaa| 农夫在线精品视频免费观看| 欧美日韩国产色站一区二区三区| 美女脱光内衣内裤视频久久影院 | 欧美伊人久久久久久久久影院| 一区在线视频| 性欧美8khd高清极品| 欧美激情一区| 久久国产88| 国产精品久久久久久久午夜片| 尤物网精品视频| 午夜精品视频在线观看| 亚洲成色www8888| 羞羞视频在线观看欧美| 欧美激情成人在线| 欧美区一区二| 久久爱www久久做| 国产一区二区日韩精品| 欧美激情一区二区三区蜜桃视频| 国产日韩欧美日韩大片| 亚洲视频免费观看| 在线观看欧美一区| 欧美日韩中文字幕| 一区二区三区免费在线观看| 欧美在线二区| 欧美日韩国产首页在线观看| 好吊成人免视频| 欧美高清一区二区| 欧美精品在线一区二区| 一区二区欧美激情| 校园春色国产精品| 美女露胸一区二区三区| 国产一区激情| 亚洲激情国产精品| 99av国产精品欲麻豆| 国产精品婷婷| 91久久黄色| 国产日韩精品电影| 亚洲国产欧美一区二区三区丁香婷| 欧美国内亚洲| 久久久久久91香蕉国产| 亚洲伦理在线| 久久久www成人免费精品| 99视频一区二区三区| 亚洲欧美三级伦理| 亚洲精品男同| 欧美一区二区三区视频| 亚洲激精日韩激精欧美精品| 亚洲国产裸拍裸体视频在线观看乱了中文| 老司机成人网| 久久精品2019中文字幕| 亚洲精品国产精品国自产观看浪潮| 亚洲性感激情| 久久免费视频网| 久久伊人精品天天| 国产亚洲成av人在线观看导航| 亚洲日韩成人| 亚洲电影在线看| 久久久国产精品一区| 免费视频久久| 午夜精品久久久99热福利| 国产人久久人人人人爽| 欧美自拍偷拍| 一区二区久久久久| 99re66热这里只有精品4 | 欧美韩日视频| 亚洲男人的天堂在线aⅴ视频| 久久综合国产精品台湾中文娱乐网| 亚洲激情综合| 亚洲永久精品大片| 亚洲国产精品一区在线观看不卡| 在线视频日韩精品| 精品成人在线| 国产精品亚发布| 欧美人与性动交a欧美精品| 欧美在线欧美在线| 一区二区国产日产| 欧美国产日本| 蜜臀久久99精品久久久久久9 | 久久蜜臀精品av| 久久久久久久久蜜桃| 亚洲一区精品视频| 亚洲一区二区视频在线| 亚洲一区二区三区免费观看 | 亚洲电影在线观看| 老色批av在线精品| 国产亚洲成年网址在线观看| 欧美性色综合| 国产精品久久福利| 国产精品亚洲欧美| 亚洲国产色一区| 亚洲区一区二| 亚洲精品乱码久久久久久黑人 | 一区二区三区视频在线播放| 亚洲日本久久| 国内精品久久久| 亚洲视频一二| 午夜精品区一区二区三| 欧美中文字幕在线视频| 欧美成人午夜免费视在线看片| 免费视频亚洲| 亚洲私人黄色宅男| 麻豆亚洲精品| 国产精品一区二区女厕厕| 在线观看91久久久久久| 亚洲国产精品一区| 亚洲精品视频二区| 午夜精品久久| 欧美96在线丨欧| 99精品免费网| 欧美日本一区二区三区| 久久一区二区视频| 亚洲人成人99网站| 亚洲一区在线免费| 久久精品亚洲精品| 欧美成年视频| 国产亚洲激情视频在线| 99精品免费| 亚洲欧美国产日韩天堂区| a4yy欧美一区二区三区| 久久频这里精品99香蕉| 国产精品电影在线观看| 国模私拍一区二区三区| 一二三区精品| 欧美激情1区2区| 欧美伊人久久| 国产精品欧美久久| 亚洲国产精品123| 美女露胸一区二区三区| 午夜精品一区二区三区电影天堂 | 欧美日韩亚洲综合一区| 韩日视频一区| 久久黄色小说| 中文av字幕一区| 欧美日韩精品免费在线观看视频| 久久久午夜精品| 黄色亚洲网站| 一区二区欧美国产| 亚洲精品一区在线| 欧美激情一区二区三区蜜桃视频| 在线观看日韩av电影| 久久久亚洲国产天美传媒修理工| 亚洲女同在线| 亚洲国产成人久久综合| 久久蜜臀精品av| 欧美激情国产日韩| 亚洲综合电影| 久久躁日日躁aaaaxxxx| 亚洲日本成人女熟在线观看| 亚洲精品一区二区三区蜜桃久| 欧美日韩情趣电影| 久久综合狠狠综合久久激情| 欧美成人免费网站| 国产精品热久久久久夜色精品三区| 欧美影院午夜播放| 亚洲男女毛片无遮挡| 欧美在线免费| 欧美亚洲日本网站| 久久久精品国产免大香伊| 亚洲免费av网站| 久久久一本精品99久久精品66| 亚洲一区免费观看|