




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux平台C及C+软件开发入门,邢延超2009年秋季学期,主要内容,Linux操作系统的安装及使用gcc、gdb及makefile文件内存分配与函数调用文件和目录操作网络编程基础多线程编程进程间通信,Linux操作系统,操作系统属性基本的系统软件,是硬件的第一级扩充基本特征多任务并行:分时服务资源共享使用用户可以充分地利用系统资源用户可忽略硬件设备控制细节,只需提出要求操作系统负责操纵设备以完成所希望的工作资源分配策略(如根据优先级)通过控制、调度、分配、管理计算机系统资源,达到对计算机的自动控制,操作系统主要功能,存贮管理为每个程序分配足够的存贮空间CPU管理为程序分配优先级采用一定调度方法,以时间片轮转方式轮流占用CPU设备管理控制外部设备的操作在多个作业间分配设备独占设备,如打印机按一定策略轮流分配给用户使用共享设备:磁盘阵列文件管理文件的建立、删除、读取、或写入等方面的服务进程与线程管理、调度等,Linux的发展,1991年8月,核心由25岁的芬兰大学生LinusTorvalds发布Linux=Linus+Minix(Linux编写的类似Minix的系统)MinixMiniUNIX,约300MB(还有Idris,Coherent,Uniflex等)都是重新发展的,并没有使用任何AT#define;etcgcc-s不进行汇编,只生成汇编语言某些代码直接就是用汇编写的gcc-c将原文件编程.o文件(即二进制文件)仍然不可执行,为什么?gcc-o指定输出文件的名字,重新命名不加-o,输出a.out,makefile-1,“自动化编译”,提高效率写好后,只需调用make,整个工程完全自动编译大多数的IDE都有这个命令Delphi的makeVisualC+的nmakeLinux下GNU的makeMake工具最主要也是最基本的功能通过makefile文件来描述源程序之间的相互关系自动维护编译工作makefile文件需要按照某种语法进行编写说明如何编译各个源文件并连接生成可执行文件定义源文件之间的依赖关系-f选项缺省文件名为Makefile或makefilemakefMyMakefile,makefile-2,#Itisaexamplefordescribingmakefileprog:filea.ofileb.ofilec.occfilea.ofileb.ofilec.o-LS-oprogfilea.o:filea.ca.hdefscc-cfilea.cfileb.o:fileb.cb.hdefscc-cfileb.cfilec.o:filec.cc.hcc-cfilec.c注1:一定要用Tab键注2:目标vs依赖关系(最小重建),makefile-3,Makefile中的宏定义OBJECTS=filea.ofileb.ofilec.oLIBES=-LSprog:$(OBJECTS)cc$(OBJECTS)$(LIBES)-oprogGNUmake的主要预定义变量$*:不包含扩展名的目标文件名称$+:所有依赖文件(可重复),空格分开,以出现先后为序$:第一个依赖文件的名称$?:所有依赖文件,空格分开,修改日期比目标创建日期晚$:目标的完整名称$:所有依赖文件,以空格分开,不包含重复的依赖文件$%:若目标是归档成员,则该变量表示目标的归档成员名称,makefile-4,Makefile中定义模式规则使用模式规则来定义一个隐含规则把所有的.c文件都编译成.o文件%.o:%.c$(CC)-c$(CFLAGS)$(CPPFLAGS)$-o$取消内建的隐含规则,只要不在后面写命令就行%.o:%.s-l(小L)参数添加库文件-I(大i)参数添加include文件路径,gdb的使用1,GDB主要完成下面四个方面的功能启动程序,按照自定义的要求随心所欲地运行程序设置断点(断点可以是条件表达式)程序停住时,可以检查此时程序中所发生的事动态改变程序的执行环境(变量值等)使用条件编译时要设置-g参数编译结果包含调试信息使用方式利用gdb启动程序指定进程ID,gdb自动attach上去并调试同时调试一个运行程序和core文件,gdb的使用2,1、使用gdb启动程序gdbmyprogram2、设置断点(breakpointb)(gdb)bfilename:line-number(gdb)bfilename:function-name(gdb)b46iftestsize=100(当前文件的46行)3、开始执行(runr)4、变量的检查和赋值whatis:识别数组或变量的类型ptype:比whatis的功能更强,可以提供一个结构的定义setvariable:将值赋予变量print:显示一个变量的值外;还可以用来赋值,gdb的使用3,5、继续执行(continuec)6、单步执行next(n):不进入的单步执行step(s):进入的单步执行finish:想退出该函数返回到它的调用函数中7、函数的调用(gdb)callgen_and_sork(1234,1,0)8、显示数据(gdb)printp(p为变量名)(gdb)printfind_entry(1,0)9、程序参数(gdb)setargsbx(gdb)showargs10、断点管理(gdb)infobreak(gdb)deletebreakpoint1(gdb)disable/enablebreakpoint1,变量的作用域与内存分配,全局变量临时变量类成员(C+)namespace内存分配原则全局变量存放在数据区局部变量存放在栈区动态变量存放在堆区栈是系统提供并管理,快速高效,无须释放(自动释放)对进程/线程是惟一的普通的栈数据结构,LIFO局部变量安排在那里,可以在一个函数结束后平衡堆栈缺点是有限制,数据不灵活,变量的作用域与内存分配,堆(动态区)函数库提供,灵活方便,数据适应面广泛程序员管理对进程/线程不一定唯一程序编译时产生的一块用于产生动态内存分配使用的块操作比栈麻烦,分配和回收时的效率比栈低分配时要判断最优地址:防止产生无用的内存碎片需要精确的申请内存/释放内存匹配分静态分配编译器完成的,比如自动变量(auto)的分配动态分配由alloc函数完成栈的动态分配无需释放(是自动的)静态变量(static)作用域可以是局部的静态区的一次存取(具有记忆性),堆栈区别的小结,使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大虽然堆栈、堆栈的说法是连起来叫,但是他们还是有很大区别的,连着叫只是由于历史的原因,函数调用的过程,压入参数将调用者给出的参数一一压入堆栈压入断点程序执行到Call指令时,当前语句地址作为断点地址压入堆栈跳转当前指令下一条指令的地址被重设为被调函数的起始地址堆栈中已分配给局部变量的内存空间的初始化顺序执行函数内语句此时函数的堆栈位于所有局部变量的内存空间之后返回为保障调用的正常返回,函数内应当保证规范使用堆栈使即将返回的时候“下一条指令地址”值恢复为执行第一条语句前的状态每一条push都要有相应的pop为什么值参的修改不起作用?,编程辅助工具,版本管理CVS:ConcurrentVersionSystemVSS:VisualSourceSafeBeyondCompare文件夹和文件对比工具SourceInsight面向项目开发的程序编辑器和代码浏览器能分析源代码并动态维护符号数据库,自动显示上下文信息还能显示ref
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行喀什地区岳普湖县2025秋招笔试行测高频题及答案
- 农发行重庆市石柱土家族自治县2025秋招笔试英文行测高频题含答案
- 农发行梅州市大埔县2025秋招半结构化面试15问及话术
- 农发行东营市河口区2025秋招笔试英文行测高频题含答案
- 农发行保定市博野县2025秋招笔试综合模拟题库及答案
- 郴州嘉禾县中储粮2025秋招笔试题库含答案
- 初三周记合集七篇
- 大唐电力太原市2025秋招电气工程专业面试追问及参考回答
- 厂转让合同15篇
- 2025年河北承德辰飞供电服务有限公司招聘101人模拟试卷及答案详解(名校卷)
- 2025主播签约合同范本
- 2025年咸阳机场安检员考试试题及答案
- 租房商场柜台合同(标准版)
- 湖北宜昌长阳清江水务投资控股集团有限公司招聘笔试题库2025
- (零模)南昌市2025年高三年级九月测试语文试卷(含标准答案)
- Hytera海能达HM780 说明书
- 2025年衢州编外考试试题及答案
- 2025-2026学年苏少版(2024)小学美术一年级上册教学计划及进度表
- 水务局面试真题及答案解析:水利行业招聘面试实战
- 邮政储蓄网点一点一策实施方案
- 质量管理体系建立运行情况报告
评论
0/150
提交评论