嗨嗨 各位大大
小魯讀OS讀到fork的執行有一個疑問
一個 Process 有 data sec 和 code sec 這兩個區段
void main()
{
int i ;
i = fork();
if(i < 0)
{
printf("fork failed")
exit(-1)
}
else if (i == 0)
{
execlp("......")
}
else
{
wait()
printf("child complete")
exit(0)
}
}
據我所知,當執行fork()後會迸出child process
而child process 的 data sec 和 code sec 區段都是來自parent process的複製
只是都是不同記憶體位置
那麼我的疑問是
在child process 執行了execlp()這個指令後
原先的 code sec 會被載入的檔案覆蓋成新載入檔案的code sec
那麼原先從parent process複製過來的data sec呢
也會被載入的檔案覆蓋成新載入檔案的data sec 嗎?