linux下的fork()函数的使用有关问题?
linux下的fork()函数的使用问题?????
Ubuntu运行结果如下:

请问为什么创建前的进程ID是4982 为什么使用fork()函数创建了一个子进程之后 进程ID变成了4983
为什么增加了1。 父进程的ID不是应该不改变吗?????
------解决方案--------------------
父进程返回子进程ID
[/code]
------解决方案--------------------
#include <stdio.h>
#include <unistd.h>
int main()
{
int pid;
printf("创建进程前,进程号:%d\n",getpid());
printf("创建进程前!\n");
pid=fork();
printf("创建进程后,进程号:%d\n",pid);
if(pid==0)
{
while(1)
{
printf("子进程\n");
sleep(2);
}
}
else
{
while(1)
{
printf("父进程\n");
sleep(2);
}
}
return 0;
}
Ubuntu运行结果如下:
请问为什么创建前的进程ID是4982 为什么使用fork()函数创建了一个子进程之后 进程ID变成了4983
为什么增加了1。 父进程的ID不是应该不改变吗?????
linux
ubuntu
c
------解决方案--------------------
pid_t fork( void);
若成功调用一次则返回两个值,
子进程返回0,父进程返回子进程ID
父进程返回子进程ID
[/code]
------解决方案--------------------
// 楼主再这样打印看看 一切明了!
#include <stdio.h>
#include <unistd.h>
int main()
{
int pid;
printf("father创建进程前,进程号:%d\n",getpid());
printf("创建进程前!\n");
pid=fork();
printf("child创建进程后,进程号:%d\n",pid);
if(pid==0)
{
while(1)
{
printf("子进程\n");
printf("child创建子进程,进程号:%d\n",getpid());
sleep(2);
}
}
else
{
while(1)