Linux编程.docx
- 文档编号:15097443
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:9
- 大小:726.35KB
Linux编程.docx
《Linux编程.docx》由会员分享,可在线阅读,更多相关《Linux编程.docx(9页珍藏版)》请在冰点文库上搜索。
Linux编程
hu四川大学计算机学院、软件学院
实验报告
课程名称
信息安全产品开发实践
实验课时
5
实验项目
Linux编程
实验时间
2011年9月9号
实验目的
1)Linux下程序开发的过程
2)了解GCC编译程序的方法
3)了解GDB的使用
4)了解如何编写makefile文件
实验环境
VMware5.0,RedHatLinux9.0,
实验内容(算法、程序、步骤和方法)
试验一:
1)使用VI编辑器,将以下代码输入到名为greet.c的文件中,使用GCC编译该程序并执行程序;
2)此代码的愿意为将main函数中定义的字符串倒序输出,执行后,发现结果显示没有输出,使用GDB分析程序错误的原因,并修改程序,以达到程序预先的目的
未修改的代码:
#include
intdisplay1(char*string);
intdisplay2(char*string);
intmain()
{
charstring[]="informaitonsecurity";
display1(string);
display2(string);
}
intdisplay1(char*string)
{
printf("theorginalstringis%s\n",string);
}
intdisplay2(char*string1)
{
char*string2;
intsize,i;
size=strlen(string1);
string2=(char*)malloc(size+1);
for(i=0;i string2[size-i]=string1[i]; string2[size+1]=‘\0’; printf("thechangedstringis%s\n",string2); } 实验步骤: (1): 先将该程序代码在Linux环境下输入,然后命名为greet.c保存. (2): 执行gcc–ogreetgreet.c–g命令; (3): 执行./greet命令,结果如下: (4)发现输出为空,而代码在语法上没有错误,判断为逻辑上出现错误,用GDB进行调试,具体过程如下图所示: (5)经过GBD的调试,发现string2[size-i](i==0)时为空,所以知道string2[size-i]=string1[i]有逻辑错误。 当i=0时,既string1的第一个字符应该对应string2最后一个字符,而string2最后一个字符的表达式是string[size-1],其他依次类推。 应将string2[size-i]=string1[i];改成string2[size-i-1]=string1[i]; (6)修改代码重新编译连接后输出结果正确,如下图所示: 试验二: •将上述的程序中的函数定义部分另存为文件hello.h,将主函数实现部分另存为hello.c,在两个程序所在目录下编写makefile文件,然后调用make工具生成可执行目标print。 (1): 用vi编辑hello.h,hello.c文件,结果如下: (2)编写makefile文件: (3): 执行makefile命令,输出正确的结果如下: (接上) 实验内容(算法、程序、步骤和方法) 具体过程如上 数据记录 和计算 具体数据,截图记录如上 结论 (结果) 用GDB进行调试能发现很容易的发现程序的一些逻辑错误,进行修改后能正确的执行,而使用makefile文件很将多个文件同时进行编译,更加的方便,具体的使用方法和过程见报告上面的实验内容。 小结 通过本实验,我掌握了: (1): 进一步熟悉了linux操作系统的一些操作; (2): 能在linux环境下进行一些基本的程序编写,并学会利用GCC工具对写好的程序进行编译; (3): 知道了GDB的作用; (4): 能利用GDB进行一些简单程序的调试,并会使用GDB中的list,break,frame,等命令; (5): 掌握了简单的makefile文件的编写,并利用它对程序进行编译执行; 目前我存在的问题有: (1): 对GCC的工作原理不是很了解; (2): 对makefile文件的一些语法掌握的不是很熟,需要继续学习; 指导老师评议 成绩评定: 指导教师签名: 实验报告说明 专业实验中心 实验名称要用最简练的语言反映实验的内容。 如验证某程序、定律、算法,可写成“验证×××”;分析×××。 实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。 在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。 一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 实验环境实验用的软硬件环境(配置)。 实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。 这部分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几个步骤。 还应该画出流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 数据记录和计算指从实验中测出的数据以及计算结果。 结论(结果)即根据实验过程中所见到的现象和测得的数据,作出结论。 小结 对本次实验的体会、思考和建议。 备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。 注意: ∙实验报告将记入实验成绩; ∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 编程