- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 UNIX系统编程基础
第6章 Unix系统编程基础 理解:程序设计环境(用户空间和系统空间) 理解:基于操作系统的程序设计(系统调用) 掌握: C/C++编辑器 GCC 掌握: GNU make和makefile的编写规则 了解 :C/C++调试器 GDB 了解:常用系统调用及库函数的使用方法 了解:常用函数库glib的使用 了解:程序管理软件SCCS\CVS 6.1 程序设计环境 理想的程序设计环境 单任务环境-单用户、单进程 多任务环境下的程序设计 用户程序不能直接控制系统的硬件设备 用户程序通过操作系统来控制系统的资源 存储中存在:用户程序空间和系统空间 6.2 基于操作系统支持的程序设计 建立系统编程的思想 站在资源管理者的角度来分析问题,充分考虑系统为用户程序提供哪些服务和资源,以实现对系统资源的有效利用——嵌入式系统 系统调用 用户程序通过系统调用实现对系统内核功能的使用及对各种硬件资源的访问 了解:系统调用的使用方法 输入、输出控制类 进程、线程管理类:创建、终止、同步、互斥等 内存及辅存管理类 6.2 基于操作系统支持的程序设计 设备控制类 本地进程通信管理类 网络进程通信管理类 系统调用与库函数的关系 系统调用是操作系统层面提供的服务,库函数是高级语言提供的服务 6.3 在UNIX中完成C程序开发 编程语言 低级语言 机器语言: 能够由机器直接执行。 汇编语言: 包含一些助记符,需要由汇编程序将其翻译成机器语言。 高级语言:需要由编译程序和解释语言将其翻译成机器语言 COBOL、BASIC、C/C++、PASCAL、FORTRAN、JAVA 6.3 在UNIX中完成C程序开发 建立可执行程序的步骤 建立源文件 建立目标文件 建立可执行文件 源代码 目标代码:由编译程序和解释程序把源代码翻译成机器能够理解的语言。目标代码不是可执行文件,它还缺少库文件。 可执行代码可能包含其它程序代码,由链接程序将目标代码和其它程序代码链接在一起,形成完整的可执行程序 6.3 在UNIX中完成C程序开发 区别编译程序和解释程序 编译程序:把高级语言翻译成机器语言。它一次编译所有的程序代码,在编译完成之前没有任何结果反馈; 解释程序:把高级语言翻译成机器语言。它一次翻译一行代码,并立即将执行结果反馈。 6.3.1 GCC:C/C++ 编译器 GCC(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,gcc编译器能将C、C++语言源程序、汇编语言和目标程序编译、链接成可执行文件,以下是gcc支持编译的一些源文件的后缀及其解释(点击) 使用gcc将C源代码文件生成可执行文件,需要经历4个相关的步骤:预处理,编译,汇编,链接 gcc支持编译的源文件后缀 GCC的使用方法 gcc的基本用法: gcc [选项] [文件名列表] gcc的选项说明: -c 只编译并生成目标文件(.o) -g 生成调试信息 -o file 指定生成的文件名 gcc命令的常用选项 几个简单的C程序实例 hello.c gcc -o hello hello.c ./hello 计算阶乘的程序 将多个源程序编译成一个可执行文件 gcc -o factorial factorial_main.c factorial.c ./ factorial n 编译一个C++程序 GCC编译器可通过后缀名判断c(.c)或c++程序(.C/.cpp),使用g++进行编译 g++ -o hello_C hello.cpp 改正错误及重定向标准错误 如果源程序有误,希望将错误信息重定向到某个文件,以便于逐一纠错,可使用如下语句 gcc hello_error.c -o hello_error 2error 重定向标准错误 1 file: 标准输出设备的重定向 2 file: 标准错误输出的重定向 6.3.2 GNU make和makefile文件 GNU make makefile 基本结构 makefile 变量 GNU make 的主要预定义变量 隐含规则 makefile 范例 运行 make GNU make 利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。 make 工具通过一个称为 makefile 的文件来完成并自动维护编译工作。makefile 需要按照某种语法进行编写,其中说明了如何编译各个源文件并链接生成可执行文件,并定义了源文件之间的依赖关系。 当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该文件的源文件。 GNU make 默
您可能关注的文档
- 网络盈利模式与创富.pptx
- 第二章第三节生物与环境组成生态系统.ppt
- 第二课:电阻与部分电路欧姆定律.ppt
- 第二课时_环境保护与绿色化学ppt.ppt
- 第五章 数据库.ppt
- 第五章 《汽车车身电控技术 》毛峰主编.ppt
- 第五章 其他电子装备.ppt
- 第五章 金属电弧喷涂快速制模技术.ppt
- 第二章控制系统的数学模型tf第三讲1.ppt
- 第五章系统动力学--系统仿真.ppt
- DB23_T 3866-2024冰上龙舟赛事组织服务规范.docx
- DB32 2163-2012 棉纱单位可比综合电耗限额及计算方法.docx
- DB32∕T 2429-2013 棉花田间生长发育观察记载规范.docx
- DB23_T 3820-2024 工业互联网综合平台数据质量管理规范.docx
- DB23_T 3474-2023非煤智慧矿山信息系统技术规范.docx
- DB3201_T 1106-2022 工程地质层划分技术规范.docx
- DB33T 2515-2022公共机构“零碳”管理与评价规范.docx
- DB3301_T 0415-2023 装修垃圾收运处置管理规范.docx
- DB3311/T 106―2019“丽水山居”民宿服务要求与评价规范.docx
- DB3201T 1127-2022 慈善捐赠受赠管理规范.docx
最近下载
- 金蝶云苍穹考试认证理论考题汇总(精华版).pdf VIP
- 钢梯设计图集15J401.pdf VIP
- 在项目规划评审会上的致辞发言3.docx
- 建筑工程图集 G410-1~2:1.5m×6.0m预应力混凝土屋面板(2004年合订本).pdf VIP
- 《康复评定技术》课件——第十七章 常见神经疾病的评定技术.ppt VIP
- 山东省水产品出口贸易现状、问题及对策分析.docx VIP
- 2025年上海黄浦区中考模拟语文试卷(含答案) .pdf VIP
- 《综合与实践:白昼时长规律的探究》教案.docx VIP
- 2025年妇产科护理技术规范.pdf VIP
- 施工现场高温季节安全防护与防暑管理培训.pptx VIP
文档评论(0)