[問題] fork() & exec() 的疑問

看板Programming作者 (severus)時間12年前 (2012/07/01 21:18), 編輯推噓2(208)
留言10則, 3人參與, 最新討論串1/1
fork()跟exec()剛看書看到這段有點不太懂 書上的意思是若fork()後緊接著執行exec() 則不需要複製全部的thread,只需複製(duplicate)呼叫fork的thread 因為執行exec後會把複製的process取代掉 (這邊不太懂,為啥exec()會取代掉複製後的thread?複製後不就是要執行嗎?) 若fork()後沒有exec() 則會複製整個process的全部threads (複製出來的process是會?1.執行 2.暫停,等待user下指令讓他執行) 查了網路上的一些說明,但都不是很詳細,跟書上的解釋差不多 所以上來請教各位 先謝謝了 --

03/23 22:08,
我覺得對方能力強不會是壓力,但如果感到對方也希望自己
03/23 22:08

03/23 22:08,
有壓力是正常的 多少而已
03/23 22:08

03/23 22:08,
也強的態度的話,就變成壓力,例如我以前曾為了男友考研
03/23 22:08

03/23 22:16,
發替代役
03/23 22:16

03/23 22:17,
快被樓上笑死了~ 肚子好痛
03/23 22:17
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.48.111

07/01 23:07, , 1F
exec就是要執行其他程式,自然不用全部
07/01 23:07, 1F

07/01 23:08, , 2F
的thread,但是只有fork就不一樣了
07/01 23:08, 2F

07/01 23:09, , 3F
你應該是不清楚exec吧? exec是執行"其他
07/01 23:09, 3F

07/01 23:09, , 4F
"程式喔! fork出來的則是執行原本的程式
07/01 23:09, 4F
抱歉真的不熟,課本上也未對exec()多做解釋 那請問exec()要傳入什麼參數嗎?或是後面要接什麼指令 不然某個thread呼叫fork()及exec()後,要怎麼知道新process是執行哪個程式? ※ 編輯: fenir 來自: 220.134.48.111 (07/02 11:49)

07/03 10:29, , 5F
exec是6個system call的總稱,請google
07/03 10:29, 5F

07/03 10:30, , 6F
太多了,google會比較快喔~Y
07/03 10:30, 6F

07/03 12:49, , 7F
感謝!!! 原來只是總稱而已
07/03 12:49, 7F

07/05 00:18, , 8F
exec是把程式碼,stack,heap那些都取代
07/05 00:18, 8F

07/05 00:18, , 9F
並不會產生新的process
07/05 00:18, 9F

07/05 00:22, , 10F
fork接著exec就是先完全複製一份再變身
07/05 00:22, 10F
文章代碼(AID): #1Fy4ubWT (Programming)