Linux进程控制实验

一. 实验目的1.掌握Linux创建进程。2.掌握Linux父子进程同步。3.掌握Linux子进程的重新加载。4.进一步熟悉linux下vi的使用和C源程序的编译与运行。

二. 实验准备1. 创建子进程函数:fork()说明:返回值 0 创建成功,,从子进程返回>0创建成功,从父进程返回,其值为子进程的PID号-1创建失败2. 进程终止函数:exit(int status)说明:是一个不返回函数,所用头文件#include<stdlib.h>3. 父进程等待子进程终止函数:(1)wait()(2)waitpid()说明:头文件#include<sys/wait.h>#include<sys/types.h> 返回值:≥0 表示有子进程终止,其值为终止子进程的pid号-1 表示无子进程终止三.实验内容编译实验,分析运行结果1、程序1(test1.c):要求画出进程家族树#include <stdio.h>int main(void){ fork ( );fork ( );fork ( );putchar( ‘A’ ); }

2、程序2(test2.c)#include <stdio.h>int main(void){ int p1;putchar(‘x’);while((p=fork())= =-1);if(p1= =0)putchar(‘b’);elseputchar(‘a’);putchar(‘y’);}

3、程序3(test3.c)#include <stdio.h>int main(void){ int p1;putchar(‘x’);while((p=fork())= =-1);if(p1= =0){putchar(‘b’);exit(0);}elseputchar(‘a’);putchar(‘y’);}

4、程序4(test4.c)#include <stdio.h>int main(void){ int p1;int x=1;while((p=fork())= =-1);if(p1= =0){putchar(‘b’);x=9;printf(“%d”,x); }else{putchar(‘a’);printf(“%d”,x);} }

5、程序5(test5.c)#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <stdlib.h>int main(void){ int p1;while((p=fork())= =-1);if(p1>0){wait(0);putchar(‘b’);}Else{putchar(‘a’);exit(0);}}

6、(1)子进程程序(chld.c)#include <sys/types.h>#include <unistd.h>#include <stdlib.h>main( ){ Printf(“I am child\n”);Exit(0);}

(2)父进程程序(test6.c)#include <unistd.h> #include <stdio.h> int main() { Int pWhile((p=fork())= = -1);If(p= =0)Execl(“./chid”,0);Else{Wait(0);Exit(0);}}四.实验报告实验课题、目的与主要内容要求,实际进行的实验详细记录及每一个实验阶段环节的分析与结论。

冬天已经到来,春天还会远吗?

Linux进程控制实验

相关文章:

你感兴趣的文章:

标签云: