linux下的fork()函数的使用有关问题?

linux下的fork()函数的使用问题?????
#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运行结果如下:

linux下的fork()函数的使用有关问题?

请问为什么创建前的进程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)