进程的创建代码

进程的创建代码_第1张图片

我自己手敲出来的,敲了好久。进程的创建代码_第2张图片

p1的代码: 

#include
#include
#include
#include
#include
#include
int main(){
        pid_t childpid;
        int retval;
        int status;
        childpid = fork();
        if(childpid >= 0)
        {
                if(childpid == 0)
                {
                printf("CHILD: I am the child process! \n");
                printf("CHILD: Here's my PID: %d\n", getpid());
                printf("CHILD: My parent's PID is %d\n", getppid());
                printf("CHILD: The value of fork return is: %d\n", childpid);
                printf("CHILD: Sleep for 1 second...\n");
                sleep(1);
                printf("CHILD: Enter an exit value(0~255): ");
                scanf("%d", &retval);
                printf("CHILD: Goodbye! \n");
                exit(retval);
                }
                else
                {
                printf("PARENT: I am the parent process! \n");
                printf("PARENT: Here's my PID: %d\n", getpid());
                printf("PARENT: The value of my child's PID is: %d\n",childpid);
                printf("PARENT: I will now wait for my child to exit.\n");
                wait(&status);
                printf("PARENT: Child's exit code is: %d\n", WEXITSTATUS(status));
                printf("PARENT: Goodbye!\n");
                exit(0);
                }
                
        }
        else
        {
        perror("fork error!");
        exit(0);
        }

}

  进程的创建代码_第3张图片

p2的代码: 

#include
#include
#include
#include
#include
#include
int main(){
        pid_t childpid;
        childpid = fork();
        if(childpid >= 0)
        {
                if(childpid == 0)
                {
                printf("CHILD: I am the child process! \n");
                sleep(1);
                execlp("/bin/ls","ls",NULL);
                }
                else
                {
                printf("PARENT: I am the parent process! \n");
                printf("PARENT: I will now wait for my child to exit.\n");
                wait(NULL);
                printf("PARENT: my child exit!\n");
                printf("PARENT: Goodbye!\n");
                }

        }
        else
        {
        perror("fork error!");
        }
        return 0;
}

不用感谢我,点个赞就行了。

你可能感兴趣的:(linux)