实验题目: 进程的创建
实验目的:(1)加深对进程概念的理解,进一步认识并发执行的性质;
(2)掌握Linux操作系统中进程的创建和终止操作;
(3)掌握在Linux操作系统中创建子进程并加载新映像的操作。
实验环境(硬件和软件) VMware Workstation,Linux
实验内容:(慕课版书籍)
1)编写一个C程序,并使用系统调用fork()创建一个子进程。要求如下:①在子进程中分别输出当前进程为子进程的提示、当前进程的PID和父进程的PID、根据用户输人确定当前进程的返回值、退出提示等信息。②在父进程中分别输出当前进程为父进程的提示、当前进程的PID和子进程的PID、等待子进程退出后获得的返回值、退出提示等信息。
2)编写另一个C程序,使用系统调用fork()以创建一个子进程,并使用这个子进程调用exec函数族以执行系统命令ls。
实验步骤:
(1)本实验属于验证型实验,主要目的是验证forko的返回值。
1.1在主程序中通过fork()创建子进程,并根据返回值确定所处的进程是子进程还是父进程,然后分别在子进程和当前进程(父进程)中调用getpid()、getppid()、wait()等函数以完成实验内容。
1.2sleeep()函数,让进程挂起一段时间。
1.3WEXITSTATUS()函数,判断子进程是不是正常退出的:如果是,就返回一个非零值(子进程传送给exec 函数族的参数的低8位);如果子进程不是正常退出的,则返回0。
(2)在fork()调用之后于子进程中使用exec函数族执行ls命令。