暨南大学本科实验报告专用纸
一、实验目的
通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。
二、实验环境及设备
(一)实验室名称:计算机实验室(二)主要仪器设备:PC机、Li
ux操作系统环境
三、实验内容
(1)编写一段程序,使用系统调用fork来创建两个子进程,并由父进程重复显示字符某字符串和自己的标识数,而子进程则重复显示某字符串和自己的标识数。(2)编写一段程序,使用系统调用fork来创建一个子进程。子进程通过系统调用exec更换自己的执行代码,显示新的代码后,调用exit结束。而父进程则调用waitpid等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。
四、实验调试分析
1、实验函数说明(1)fork()创建新进程
要创建一个进程,最基本的系统调用是fork。系统调用fork用于派生一个进程,头文件:i
cludeu
istdh函数定义:i
tforkvoid返回值:子进程中返回0,父进程中返回子进程ID,出错返回1函数说明:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。
(2)exec函数族
头文件:i
cludeu
istdh
函数族:i
texeclco
stcharpathco
stcharargi
texeclpco
stcharfileco
stchararg
f暨南大学本科实验报告专用纸附页
i
texecleco
stcharpathco
stcharargco
stchare
vpi
texecvco
stcharpathco
stcharargvi
texecveco
stcharpathco
stcharargvco
stchare
vpi
texecvpco
stcharfileco
stcharargv
参数说明:execl的第一个参数是包括路径的可执行文件,后面是列表参数,列表的第一个为命令path,接着为参数列表,最后必须以NULL结束。execlp的第一个参数可以使用相对路径或者绝对路径。execle最后包括指向一个自定义环境变量列表的指针,此列表必须以NULL结束。execv,v表示path后面接收的是一个向量,即指向一个参数列表的指针,注意这个列表的最后一项必须为NULL。execve,path后面接收一个参数列表向量,并可以指定一个环境变量列表向量execvp,第一个参数可以使用相对路径或者绝对路径,v表示后面接收一个参数列表向量。exec被调用时会替换调用r