内容发布更新时间 : 2024/11/16 8:27:08星期一 下面是文章的全部内容请认真阅读。
实验4 Linux 高级程序设计
1、实验目的
(1) 了解Linux操作系统下应用程序开发流程 (2) 掌握gun工具链的使用
(3) 了解Linux高级编程技巧(例如IPC机制、系统调用等)
2、实验内容
(1) 编写一个简单的C语言程序,编写Makefile文件。了解编译过程,并用
gdb进行调试。
(2) 编写一段程序,适用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。控制让一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和字符“c”。试观察屏幕上的显示结果,并对输出结果进行分析。在实验报告中写出说明和分析。
(3) 编写一段程序实现父进程创建一个子进程,通过系统调用使子进程和父进程执行不同的任务。(提示:利用system(), exec系列函数)
试思考,怎样实现进程间的同步?
(4) 编写一段C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
3、 实验要求
(1) 写出源程序,并编译运行 (2) 详细记录程序调试及运行结果
4、 实验思路及过程
(1)
makefile文件:
main.c文件:
1.c文件:
2.c文件:
-o写成-c,函数库导入不正确:
(2)
出现acb的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p2=fork()创建的子进程运行完毕输出c,最后p1=fork()创建的子进程运行完毕输出b;
出现abc的结果:p1=fork()会创建一个新的进程,父进程遇到p2=fork()创建又一个新的进程,此时,父进程运行完毕输出a,p1=fork()创建的子进程运行完毕输出b,最后p2=fork()创建的子进程运行完毕输出c;