您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 实验1:Linux下C语言编程实践-推荐下载
1实验1linuxc语言编程实践一、实验目的1.掌握Linux环境下C程序的编辑、编译、运行等操作;2.掌握多文件的编译及连接;3.初步掌握gdb调试方法;二、实验任务与要求1.在Linux环境下C程序的编辑、编译与运行;2.多文件的编译及连接;3.应用gdb调试程序;三、实验工具与准备计算机PC机,LinuxUbuntu操作系统四、实验步骤与操作指导1.调试下列程序。程序通过创建一个小型函数库,它包含两个函数,然后在一个示例程序中调用其中一个函数。这两个函数分别是pro1和pro2。按下面步骤生成函数库及测试函数库。步骤1为两个函数分别创建各自的源文件(将它们分别命名为pro1.c和pro2.c)。[root@localhostroot]#vipro1.c#includesdtio.hvoidpro1(intarg){printf(“hello:%d\n”,arg);}[root@localhostroot]#vipro2.c#includesdtio.hvoidpro2(char*arg){printf(“您好:%s\n”,arg);}步骤2分别编译这两个文件,生成要包含在库文件中的目标文件。这通过调用带有-c选项的gcc编译器来实现,-c选项的作用是阻止编译器创建一个完整的程序,gcc将把源程序编译成目标程序,文件名为以.o结尾。如果此时试图创建一个完整的程序将不会成功,因为还未定义main函数。[root@localhostroot]#gcc-cpro1.cpro2.c[root@localhostroot]#ls*.opro1.opro2.o步骤3现在编写一个调用pro2函数的程序。首先,为库文件创建一个头文件lib.h。这个头文件将声明库文件中的函数,它应该被所有希望使用库文件的应用程序所包含。[root@localhostroot]#vilib.h/*lib.h:pro1.c,pro2.c*/3、管路敷设技术通1过管线敷设技术0不仅可以解决吊顶层配置不规范高中资料试卷问题22,而且可保障各类管路习题到位。在管路敷设过程1中,要加强看2222222222护1关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置.保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。4、电气课件中调试技术对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。5、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。2voidpro1(int);voidpro2(char*);步骤4创建主程序program.c,它包含库的头文件并且调用库中的一个函数。[root@localhostroot]#catprogram.c#include“lib.h”intmain(){pro2(“Linuxworld”);exit(0);}步骤5编译并测试程序。暂时为编译器显式指定目标文件,然后要求编译器编译文件并将其与预先编译好的目标模块pro2.o链接。[root@localhostroot]#gcc-cprogram.c[root@localhostroot]#gcc-oprogramprogram.opro2.o[root@localhostroot]#./program您好:Linuxworld步骤6创建并使用一个库文件。用ar程序创建一个归档文件并将目标文件添加进去。这个程序之所以称为ar,是因为它将若干单独的文件归并到一个大的文件中以创建归档文件。注意,也可以用ar程序来创建任何类型文件的归档文件。[root@localhostroot]#arcrvlibfoo.apro1.opro2.o函数库现在即可使用。可以在编译器命令行的文件列表中添加该库文件以创建程序,如下所示:[root@localhostroot]#gcc-oprogramprogram.olibfoo.a[root@localhostroot]#./program您好:Linuxworld也可以用“-l”选项来访问函数库,但是因为其未保存在标准位置,所以必须用-L选项来指示gcc在何处可以找到它,如下所示:[root@localhostroot]#gcc-oprogramprogram.o-L.-lfoo-L.选项指示编译器在当前目录“.”中查找函数库。“-lfoo”选项指示编译器使用名为libfoo.a的函数库(或者名为libfoo.so的共享库,如果它存在的话)。要查看目标文件、函数库或可执行文件里包含的函数,可以使用nm命令。如果查看program和libfoo.a,就会看到函数库libfoo.a中包含pro1和pro2两个函数,而program里只包含函数pro2。创建程序时,它只包含函数库中它实际需要的函数。虽然程序中的头文件包含函数库中所有函数的声明,但这并不将整个函数库包含在最终的程序中。问题思考:(1)按照给出的步骤1-6调试程序;(2)编写两个函数,其中一个求数组中的最大值与最小值,另一函数求某一数组的元素个数及main函数,建立一个库。主程序调用这两个函数,对程序进行调试并记录实验结果。2.调试下列程序。设计一个程序,要求输入两个整数,输出两个整数间的所有自然数。步骤1编辑源程序代码。[root@localhostroot]#vimmain.c程序代码如下:#includestdio.h3、管路敷设技术通1过管线敷设技术0不仅可以解决吊顶层配置不规范高中资料试卷问题22,而且可保障各类管路习题到位。在管路敷设过程1中,要加强看2222222222护1关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置.保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。4、电气课件中调试技术对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。5、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。3intnum(intx,inty);intmain(){inta1,a2,min_int;printf(请输入第一个整数:);scanf(%d,&a1);printf(请输入第二个整数:);scanf(%d,&a2);num(a1,a2);}intnum(intx,inty){inttemp,i;if(xy){temp=x;x=y;y=temp;}for(i=x;i=y;i++)printf(“%5d”,i);printf(“\n”);return0;}步骤2用gcc编译程序。在编译的时候要加上选项“-g”。这样编译出的可执行代码中包含调试信息,否则之后gdb无法载入该可执行文件。[root@localhostroot]#gccmain.c-omain-g步骤3进入gdb调试环境。gdb进行调试的是可执行文件,因此要调试的是main而不是main.c,输入如下:[root@localhostroot]#gdbmain回车后就进入了gdb调试模式,如图4-1所示。GNUgdbRedHatLinux(5.3post-0.20021129.18rh)Copyright2003FreeSoftwareFoundation,Inc.GDBisfreesoftware,coveredbytheGNUGeneralPublicLicense,andyouarewelcometochangeitand/ordistributecopiesofitundercertainconditions.Typeshowcopyingtoseetheconditions.ThereisabsolutelynowarrantyforGDB.Typeshowwarrantyfordetails.ThisGDBwasconfiguredasi386-redhat-linux-gnu...(gdb)图4-1进入gdb调试环境可以看到,在gdb的启动画面中有gdb的版本号、使用的库文件等信息,在gdb的调试环境中,提示符是“(gdb)”。步骤4用gdb调试程序。(1)查看源文件在gdb中输入“l”(list)就可以查看程序源代码,一次显示10行。可以看出,gdb列出的源代码中明确地给出了对应的行号,这样可以大大方便代码的定位。(2)设置断点3、管路敷设技术通1过管线敷设技术0不仅可以解决吊顶层配置不规范高中资料试卷问题22,而且可保障各类管路习题到位。在管路敷设过程1中,要加强看2222222222护1关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置.保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等
本文标题:实验1:Linux下C语言编程实践-推荐下载
链接地址:https://www.777doc.com/doc-6212149 .html