当前位置:  技术问答>linux和unix

关于进程号pid的一个困惑,熟悉内核代码的请进来!!

    来源: 互联网  发布时间:2015-10-09

    本文导语:  pid=fork();书上说若pid为0,则为子进程;若pid>0则为父进程。那么在这个子进程里再创建一个子进程2呢?岂不是所有子进程的pid都为0了??那还要waitpid()有何用,岂不是和wait()功能一样了??? 我看了0.11版的内核,...

pid=fork();书上说若pid为0,则为子进程;若pid>0则为父进程。那么在这个子进程里再创建一个子进程2呢?岂不是所有子进程的pid都为0了??那还要waitpid()有何用,岂不是和wait()功能一样了???
我看了0.11版的内核,发现fork()返回的子进程pid是由fork.c文件中的find_empty_process()函数获得的,其方法非常简单,就是(++last_pid)。然后在copy_process()函数中让p->pid=last_pid。由此看来,子进程的pid怎么会是0呢???
按照逻辑,应该只有认为0的pid为0啊!(在sched.h中对任务0进行的初始化。),其它进程都是任务0的子进程,其pid都应该大于0啊??
我当然知道进程号和任务号的区别,但还是迷惑:(

(注:我刚才又看了2.4内核,好像fork.c已经面目全非了,没有心情再看下去了,来这问问,呵呵)

|
^_^ 你理解错误了
pid=fork()之后就有两个进程了(父进程,新建的字进程)
fork()要返回值 这是父进程和子进程已是两个独立并发进程
fork()向两个进程都返回一个值:加入fork()成功,将给父进程返回子进程PID(其必定大与零),给子进程返回一个零
父子进程将从fork()后的代码分道扬镳,各自相对对立运行

|
谁说子进程pid为0啊.你getpid()(得到当前),getppid(得到父)看看就知道进程id到底是什么了

    
 
 

您可能感兴趣的文章:

  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 进程内核栈和操作系统内核栈的关系
  • 内核进程与用户进程间的通信
  • 请问linux进程的哪些信息保存在内核里?哪些信息又保存在进程空间里?谢谢
  • 内核进程间发送信号用哪个函数,如果没有这东西,那内核里异步通知用哪个东西
  • Linux内核进程与应用进程的通信方式有哪些?
  • linux 内核进程堆问题,大家指教
  • 关于内核进程和用户层命令不是很理解?
  • 如何利用Linux内核线程来保存用户进程
  • 【求助】多进程中 内核信号量无效?
  • 进程系统调用陷入内核的不解
  • 请教一个linux进程内核栈的问题
  • linux内核高手进!关于调用__fork()时0号进程的子进程才能与父进程共享PID的困惑
  • 内核进程线程问题,大家指教
  • 用户进程有自己独立的地址空间,内核线程没有自己的地址空间 该怎样理解: ?
  • 【如何彻底杀死子进程】Kill -9子进程后进程呈僵死状态 iis7站长之家
  • linux 可不可以编译成一个单进程的内核
  • linux内核缓冲区与进程缓冲区。
  • 请教一下,进程调度时在导入新进程的cr3之后,CPU是怎么区分当前正处于内核而不去使用新的页目录呢?
  • 中断上下文,进程上下文 ,内核抢占,用户抢占,中断
  • 求助: 进程调度内核分析
  • 那位兄弟熟悉logrotate,这个进程经常吃光cpu资源
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux僵尸(zombie)进程介绍及清除
  • 进程Afork进程B,进程Bfor进程C,如果进程C退出发出SIGCHLD,A进程是否可以收到
  • Ubuntu查看内存,进程相关命令介绍
  • 如果一个server进程要fork许多子进程,但不等待子进程终止,也不希望子进程结束后处于僵进程状态直到父进程终止。请问可采用什么方法实现
  • linux下进程占用内存空间详解
  • 在多进程中父进程frok子进程,怎样让子进程自举,脱离父进程,而且父进程不退出
  • android 4.0 托管进程介绍及优先级和回收机制
  • fock()开出的子进程的进程ID是否进程ID都大于父进程的?
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • 多进程问题 子进程读取内容 读完挂起,父进程写 写入后唤醒子进程
  • 一个进程首先监听一个端口,等到有连接了就新开一个进程,让新进程来处理后面的通讯。请问母进程中已经打开了端口,子进程怎么来使用同一
  • 我在一个父进程中,生成了4个子进程,子进程的优先级是一样的。我现在想结束子进程。该如何做?
  • 子进程wait/waitpid//子进程不结束,父进程会等待子进程吗?
  • 在一个进程中我定义了几个全局变量,然后我又fork了几个子进程,子进程中是否可以各自对全局变量进行修改,如果各子进程都对其进行修改,
  • 怎样一次杀掉父进程创建的所有子进程?我在父进程中用kill(0,SIGKILL),结果父进程也给干掉了,参数0难道不是表示除自己外的所有同uid的进
  • 进程创建进程组后,然后创建该组中的进程,然后终止。这里的终止....?
  • 如何实现子进程根据父进程的信号来确定是否终止子进程???
  • 高手请教!linux怎样通过pid获取进程信息,如:进程名、进程状态等?
  • 如何通过进程号获得进程的一些信息,例如:进程运行的目录
  • 【如何彻底杀死子进程】Kill -9子进程后进程呈僵死状态


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3