中南大学linux程序设计环境实验四(DOC)

实验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;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4