在C中创建第二个流程

时间:2014-12-11 07:06:25

标签: c

我是C编程新手,我必须这样做:

  

编写一个创建第二个流程的程序,然后在两个流程中输出流程ID和所有者用户ID。

我不知道这是否正确以及如何从这里继续。这就是我所拥有的:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(void) {

    int ChildPID;

    printf("This is the parent process number %d\n",getpid());
    if ((ChildPID = fork()) == -1) {
        perror("Could not fork");
        exit(EXIT_FAILURE);
    }

    if (ChildPID == 0) {
        //----In the child process
        printf("This is the child process, number %d parent number %d\n", getpid(), getppid());
    } 

    return(EXIT_SUCCESS);
}

1 个答案:

答案 0 :(得分:1)

下面给出的代码片段给出了解决方案。在这里,您可以清楚地识别父代码和子进程代码。两者都在打印相应的pid。

void  ExecuteChild(void);
void  ExecuteParent(void);

int  main(void)
{
    pid_t  pid;

    pid = fork();
    if (pid == 0)
        ExecuteChild();
    else
        ExecuteParent();
}

void  ExecuteChild(void)
{
    int   i;

    for (i = 1; i <= 200; i++)
        printf("CHILD[%d]: UserID[%d] printing - %d\n", getpid(),getuid(),i);
    printf(" ------------- Child Exiting -------------\n");
}

void  ExecuteParent(void)
{
    int   i;

    for (i = 1; i <= 200; i++)
        printf("PARENT[%d]: UserID[%d] printing - %d\n", getpid(),getuid(),i);
    printf(" ------------- Parent Exiting -------------\n");
}