嗨嗨 各位大大
小鲁读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 吗?