子进程是否从 Fork 函数 后 开始执行,执行函数后的代码。Fork函数之前的不执行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子进程是否从 Fork 函数 后 开始执行,执行函数后的代码。Fork函数之前的不执行?相关的知识,希望对你有一定的参考价值。

参考技术A 是的, 具体可以用命令man 2 fork来看下fork的函数说明追问

但是,我写个小代码,fork()函数之前 写了一个语句 putchar(‘x’); 子进程总是执行该语句。输出一个X。这矛盾啊!

linux 中的多进程中,父进程与子进程共享的代码段和数据段、堆栈段,是整个程序还是出现在fork()函数后?

首先来说 不是共享 共享是同一个区域 但是fork后相当于复制了一份 也就相当于一个副本 所以 在以后的程序执行 父进程改变父进程的数据 子进程改变子进程的数据 所以不能说共享 他们相同的是整个程序 差不多就相当于是两个相同的程序在执行

共享数据是线程 创建一个线程后他们的数据是共享的 他们是同一个数据
参考技术A 共享是同一个区域 但是fork后相当于复制了一份 也就相当于一个副本 所以 在以后的程序执行 父进程改变父进程的数据 子进程改变子进程的数据 所以不能说共享 他们相同的是整个程序

以上是关于子进程是否从 Fork 函数 后 开始执行,执行函数后的代码。Fork函数之前的不执行?的主要内容,如果未能解决你的问题,请参考以下文章

(疑问)进程控制---vfork 函数

结合中断上下文切换和进程上下文切换分析linux内核的一般执行过程

fork()函数的执行过程孤儿进程和僵尸进程

linux父子进程执行问题

5进程创建FORK

关于父子进程的执行顺序和执行过程