ubuntu上进程生成并且调用子进程执行不同的任务

求大神来个demo好好的讲解一下,就是用c或者c++写一个进程生成并且调用子进程去执行不同的任务,书上的demo都被敲烂了,还是错的,求个可以运行的demo。


 #include <unistd.h>
#include <sys/types.h>
main()
{
        pid_t pid;
        printf("\n[%d]not fork pid=%d\n",getpid(),pid);
        pid=fork();
        printf("\n[%d]forked pid=%d\n",getpid(),pid);
        if(pid<0)
        {
                printf("error in fork!\n");
                getchar();
                exit(1);
        }
        else if(pid==0)
                printf("\n[%d]in child process,p_id=%d\n",getpid(),getpid());
        else
        {
                printf("\n[%d]in parent process,my pid=%d\n",getpid(),pid);
                printf("\n[%d]in parent process,my getpid=%d\n",getpid(),getpid());

        }
}

就是调用fork

http://www.cppblog.com/zhangxu/archive/2007/12/02/37640.html

 int main()
{
    int myvar = 0;
    if(fork())
        myvar = 1;
    else if(fork())
        myvar = 2;
    else
        myvar = 3;

    printf("I'm %d: myvar is %d\n", getpid(), myvar);
    return 0;
}