当前位置: 技术问答>linux和unix
fork()首次调用新创建进程时,其入口在哪里?在线等等
来源: 互联网 发布时间:2016-10-15
本文导语: 用fork()函数首次调用创建进程时,他的入口在哪里 | 调用fork函数的下一条语句开始 | 看一下典型的应用代码吧:如下 pid_t new_pid; new_pid = fork(); //父进程在这里继续运行...
用fork()函数首次调用创建进程时,他的入口在哪里
|
调用fork函数的下一条语句开始
|
看一下典型的应用代码吧:如下
fork()函数被调用一次,但返回两次;两次返回的区别是:子进程的返回值是0,而父进程的返回值是子进程的ID。
子进程和父进程运行相同的代码,但是有自己的数据空间。
pid_t new_pid;
new_pid = fork();
//父进程在这里继续运行,子进程也从这里开始
switch(new_pid){
case -1 : /* error */
break;
case 0 : /* this is child */
/* 子进程会运行这里的代码 */
break;
default: /* this is parent */
break;
}
//如果这后面还有代码,父进程和子进程均会运行
fork()函数被调用一次,但返回两次;两次返回的区别是:子进程的返回值是0,而父进程的返回值是子进程的ID。
子进程和父进程运行相同的代码,但是有自己的数据空间。
|
对于fork()产生的子进程而言,其返回值为0
也就是返回值为0的分支是子进程..
也就是返回值为0的分支是子进程..
|
fork只是负责创建进程,没有你所谓的入口点函数。如果再fork后面调用了exce函数,那么该进程真正的入口点就是exce函数执行的程序的main函数。
总之,fork负责创建进程,初始化内核数据结构,拷贝附近程各种资源等,exce负责运行进程,也就是加载main入口点。
总之,fork负责创建进程,初始化内核数据结构,拷贝附近程各种资源等,exce负责运行进程,也就是加载main入口点。
|
fork()在父子进程的返回值不一样,返回0的分支是子进程,
fork是把父进程的执行环境复制一分,到自己的进程空间,
即父子进程的执行体是一样的,子进程也是从父进程fork的地方开始执行。
fork是把父进程的执行环境复制一分,到自己的进程空间,
即父子进程的执行体是一样的,子进程也是从父进程fork的地方开始执行。
|
顶,等待高手。
|
不知道你说这入口啥意思,在网上找个例子,自己体会下就知道了。
|
看看内核你就明白了