fork與輸出緩衝區

2021-06-09 17:52:55 字數 588 閱讀 1479

如下程式輸出的「-」的數目是多少:

程式1:

#include #include #include int main()

return 0;

}

輸出:8個「-」

程式2:

#include #include #include int main()

return 0;

}

輸出:6個「-」

行緩衝:在這種情況下,當輸入或輸出緩衝區中遇到換行符時,標準i/o庫執行i/o操作,輸出資訊便會顯示出來。

全緩衝:在這種情況下,只有當輸入或輸出緩衝區滿時,標準i/o庫才會執行i/o操作,輸出資訊才顯示出來。

程式1輸出8個「-」主要是因為父程序在i=1時,執行fork後生成的子程序拷貝了父程序的輸出緩衝區的內容,而程式2中在輸出中加入了換行符,進行了緩衝去重新整理,所以fork時複製給子程序的緩衝區內容為空。

關於fork與緩衝區的詳細說明見:

獨語者-

從多程序函式fork解讀linux系統行緩衝與全緩衝

輸入緩衝區與輸出緩衝區

本博文通過一段程式來理解輸入緩衝區與輸出緩衝區。程式如下 author wanghao created time thu 17 may 2018 06 03 12 ampdt file name test.c description include int main int argc,const c...

輸出緩衝區

輸出緩衝區 printf 輸出緩衝區 顯示器 printf函式列印的內容會先送入輸出緩衝區,輸出緩衝區將資料送到顯示器我們才能看見。什麼時候輸入緩衝區會將資料送到顯示器 什麼時候輸出緩衝區會清空 1 當輸出乙個換行符時 2 當輸入時,先清空輸出緩衝區 3 輸出緩衝區滿時 4 當主動呼叫fflush ...

php 緩衝區,PHP的輸出緩衝區

1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...