作者fenir (severus)
看板Programming
標題[問題] fork() & exec() 的疑問
時間Sun Jul 1 21:18:24 2012
fork()跟exec()剛看書看到這段有點不太懂
書上的意思是若fork()後緊接著執行exec()
則不需要複製全部的thread,只需複製(duplicate)呼叫fork的thread
因為執行exec後會把複製的process取代掉
(這邊不太懂,為啥exec()會取代掉複製後的thread?複製後不就是要執行嗎?)
若fork()後沒有exec()
則會複製整個process的全部threads
(複製出來的process是會?1.執行 2.暫停,等待user下指令讓他執行)
查了網路上的一些說明,但都不是很詳細,跟書上的解釋差不多
所以上來請教各位
先謝謝了
--
1F:推 nantonaku:我覺得對方能力強不會是壓力,但如果感到對方也希望自己03/23 22:08
2F:→ roalan:有壓力是正常的 多少而已03/23 22:08
3F:→ nantonaku:也強的態度的話,就變成壓力,例如我以前曾為了男友考研03/23 22:08
4F:→ ueu72312:發替代役03/23 22:16
5F:→ nantonaku:快被樓上笑死了~ 肚子好痛03/23 22:17
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.48.111
6F:→ mars90226:exec就是要執行其他程式,自然不用全部 125.228.169.10 07/01 23:07
7F:→ mars90226:的thread,但是只有fork就不一樣了 125.228.169.10 07/01 23:08
8F:→ mars90226:你應該是不清楚exec吧? exec是執行"其他 125.228.169.10 07/01 23:09
9F:→ mars90226:"程式喔! fork出來的則是執行原本的程式 125.228.169.10 07/01 23:09
抱歉真的不熟,課本上也未對exec()多做解釋
那請問exec()要傳入什麼參數嗎?或是後面要接什麼指令
不然某個thread呼叫fork()及exec()後,要怎麼知道新process是執行哪個程式?
※ 編輯: fenir 來自: 220.134.48.111 (07/02 11:49)
10F:推 mars90226:exec是6個system call的總稱,請google 125.228.44.49 07/03 10:29
11F:→ mars90226:太多了,google會比較快喔~Y 125.228.44.49 07/03 10:30
12F:→ fenir:感謝!!! 原來只是總稱而已 220.134.48.111 07/03 12:49
13F:推 alex780312:exec是把程式碼,stack,heap那些都取代118.160.161.162 07/05 00:18
14F:→ alex780312:並不會產生新的process118.160.161.162 07/05 00:18
15F:→ alex780312:fork接著exec就是先完全複製一份再變身118.160.161.162 07/05 00:22