看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《chinjay (科科男)》之銘言: : 程式如下: : main( ) : { : printf("a\n"); : fork( ); : printf("b\n"); : fork( ); : printf("c\n"); : fork( ); : printf("d\n"); : } : 想請問'a','b','c' and 'd' 會印出幾次呢?? 借這篇標題問一下fork() 首先想問一下這篇原po下面的回文解答是a 1次 b 2次 c 4次 d 8次 在沒有補上\n的情況下卻會是abcdabcdabcdabcdabcdabcdabcdabcd 為什麼差一個\n會這樣呢 還有fork()是 copy 一份parent的code 資料到另一塊記憶體 (非共用) 那它是copy整份parent的code 還是 fork()之後的code呢? 另外之前姑狗過一個網站在講簡單的fork()概念 透過fork()可以製造多工的效果 範例程式碼執行後會印出如下 I am child , i say 1 I am parent, i say 1 (停一秒) I am child , i say 2 I am parent, i say 2 (停一秒) . . . ~44 會有child 跟 parent 在同步say 1,2,3.... 的效果 那fork()有辦法製造出三個以上這類的同步效果嗎? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.222.135
kdjf:因為沒有\n的話,abcd都還在buffer裡,fork的時候一起被複製了 10/14 20:46
changyuheng:http://coolshell.cn/articles/7965.html 10/15 10:32