Posted on 2009-01-06 16:05
Prayer 阅读(4354)
评论(0) 编辑 收藏 引用 所属分类:
LINUX/UNIX/AIX
一旦调用了fork(),系统就用父进程的代码段产生一个子进程,父子进程是公用同一个代码段,
显然,在fork()调用的时候,fork()函数本身,也将出现在两个进程中,但fork()再子进程中返回0,在子进程中返回子进程的id,父子进程虽然公用代码段,但不公用数据段,所以pid=fork()分别在父子进程执行以后,各自的pid变量是不同的。
所以读取pid的值就可以判断代码段当前处于哪个进程中,在子进程中pid就是子进程的id,
父进程中的fork()返回两次,0代表在父进程内,>0,这个返回值就是子进程的进程号,同时代表现在处在子进程中。子进程复制父进程的代码执行(从fork()返回处开始执行)