fork調用拷貝緩衝區

fork在創建子進程時,子進程會拷貝父進程的緩衝區。下面是一道經常見到的筆試題。

輸出多少個"-“?

[cpp] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-size:14px;">#include<stdio.h>  
  2. #include<unistd.h>  
  3. int main()  
  4. {  
  5.         int i;  
  6.         for( i=0;i<2;i++){  
  7.                 fork();  
  8.                 printf("-\n");  
  9.         }  
  10.         return 0;  
  11. }</span>  
輸出6個

而下面這個程序輸入8個

[cpp] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-size:14px;">#include<stdio.h>  
  2. #include<unistd.h>  
  3. int main()  
  4. {  
  5.         int i;  
  6.         for( i=0;i<2;i++){  
  7.                 fork();  
  8.                 printf("-");  
  9.         }  
  10.         return 0;  
  11. }</span>  


因爲Linux是行緩衝的,如果有換行符,緩衝區會清空。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章