Linux编程.docx

上传人:b****1 文档编号:15097443 上传时间:2023-06-30 格式:DOCX 页数:9 大小:726.35KB
下载 相关 举报
Linux编程.docx_第1页
第1页 / 共9页
Linux编程.docx_第2页
第2页 / 共9页
Linux编程.docx_第3页
第3页 / 共9页
Linux编程.docx_第4页
第4页 / 共9页
Linux编程.docx_第5页
第5页 / 共9页
Linux编程.docx_第6页
第6页 / 共9页
Linux编程.docx_第7页
第7页 / 共9页
Linux编程.docx_第8页
第8页 / 共9页
Linux编程.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Linux编程.docx

《Linux编程.docx》由会员分享,可在线阅读,更多相关《Linux编程.docx(9页珍藏版)》请在冰点文库上搜索。

Linux编程.docx

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文件的一些语法掌握的不是很熟,需要继续学习;

 

指导老师评议

 

 

成绩评定:

指导教师签名:

实验报告说明

专业实验中心

实验名称要用最简练的语言反映实验的内容。

如验证某程序、定律、算法,可写成“验证×××”;分析×××。

实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。

在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。

一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。

实验环境实验用的软硬件环境(配置)。

实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。

这部分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几个步骤。

还应该画出流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。

数据记录和计算指从实验中测出的数据以及计算结果。

结论(结果)即根据实验过程中所见到的现象和测得的数据,作出结论。

小结 对本次实验的体会、思考和建议。

备注或说明可写上实验成功或失败的原因,实验后的心得体会、建议等。

注意:

∙实验报告将记入实验成绩;

∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2