洛阳师范学院UNIX实验报告-
———————————————————————————————— 作者: ———————————————————————————————— 日期:
测试过程:(实验中出现的问题、错误、解决方法) 基本算法思想掌握之后,程序的大体流程可以写出来, 具体的问题,就是有时候会因为对个别函数的参数应用出问题 老师有问必答,全部都给解决了 评语与成绩: ?? 教师签名: 年 月 日 实验总结:??? ? 洛阳师范学院信息技术学院
软件实验报告
专业: 软件工程 课程: UNIX高级编程 学号: 姓名: 班级: 实验名称 实验类型 验证型 终端与作业控制 实验时间 2012-5-23 实验环境 虚拟机下装有linux操作系统的windows操作系统 实验目的与要求: 掌握进程组、会话期、作业、控制终端的概念; 掌握作业的前台、后台切换、终端输出控制; 实验内容: 1、 有关知识点的验证 实验步骤:(算法描述、源程序、操作步骤和方法) 有关知识点的验证 写一段包含fork调用的程序,验证父子进程是否在同一组中 1) 写一段包含fork调用的程序,验证父子进程是否在同一组中 2) 调用setpgid函数,分别设置父进程和子进程为一个新组的组长进程,输出设置后的组ID,验证调用是否成功 3) 如果一个进程在创建子进程后,希望该子进程为一个新组的组长进程,setpgid应该被调用几次?在什么时机进行调用? 4) 如果子进程因执行exec函数而加载新程序执行,此时父进程调用setpgid函数设置子进程的组ID是否还能成功?验证你的结论 5) 编写一段程序,要求调用fork在子进程中建立一个新的对话期。 6) 验证步骤5)中子进程的ID和组ID是否相等?是否能够向终端输出打印信息? 2、 验证进程终止及同步关系 有运行结果可知,子进程和父进程在同一实际组里。 调用setgid函数,分别设置父进程和子进程为一个新组的组长进程,输出设置后的组ID,验证调用是否成功 1) 编写二个程序,每个程序都输出其组ID,通过管道线在命令行执行。验证这两个程序是否属于同一作业; 2) 将上述命令行在后台执行,观察输出的情况,并解释原因 3) 参照教材P189的例子,使用stty命令禁止后台进程的终端输出 4) 参照教材P189的例子,使用fg命令切换后台作业为前提作业 setpgid(设置进程组识别码) 相关函数 getpgid,setpgrp,getpgrp 表头文件 #include