预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux下的C编程实战(可编辑) Linux下的C编程实战 ――开发平台搭建 引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史 这源于它的开源特点以及其超越Windows的安全性和稳定性而近年 来操作系统在嵌入式系统领域的延伸也可谓是如日中天许多 版本的嵌入式Linux系统被开发出来如ucLinuxRTLinuxARM-Linux等 等 在嵌入式操作系统方面Linux的地位是不容怀疑的它开源它包 含TCPIP协议栈它易集成GUI 鉴于Linux操作系统在服务器和嵌入式系统领域愈来愈广泛的 应用社会上越来越需要基于Linux操作系统进行编程的开发人员 浏览许多论坛经常碰到这样的提问现在是不是很流行unixlinux 下的c编程所以想学习一下但是不知道该从何学起如何下手有什 么好的建议吗各位高手哪些书籍比较合适初学者在深入浅出的 过程中应该看哪些不同层次的书比如好的网站论坛请大家赐教不慎 感激 鉴于读者的需求在本文中笔者将对Linux平台下C编程的几个方 面进行实例讲解并力求回答读者们关心的问题以与读者朋友们进行 交流 共同提高在本文的连载过程中有任何问题或建议您可以给笔者 发送email21cnbao21cncom您也可以进入笔者的博客参与讨论cnbao 笔者建议在PC内存足够大的情况下不要直接安装Linux操作系 统最好把它安装在运行VMWare虚拟机软件的Windows平台上如下图 在Linux平台下可用任意一个文本编辑工具编辑源代码但笔者 建议使用emacs软件它具备语法高亮版本控制等附带功能如下图 GCC编译器 GCC是Linux平台下最重要的开发工具它是GNU的C和C编译 器其基本用法为[options][filenames]为编译选项GCC总http://www.wendangxiazai.com/d-909769342.html共提供的编译选项超过100个但只有 少数几个会被频繁使用我们仅对几个常用选项进行介绍 假设我们编译一输出HelloWorld的程序 Filenamehelloworldc printf"HelloWorld" 最简单的编译方法是不指定任何编译选项helloworldc 它会为目标程序生成默认的文件名aout我们可用-o编译选项来 为将产生的可执行文件指定一个文件名来代替aout例如将上述名为的C程序编译为名叫helloworld的可执行文件需 要输入如下命令–ohelloworldhelloworldc c选项告诉GCC仅把源代码编译为目标代码而跳过汇编和连接 的步骤 S编译选项告诉GCC在为C代码产生了汇编语言文件后停止 编译GCC产生的汇编语言文件的缺省扩展名是s上述程序运行如下 命令–Shelloworldc 将生成helloworldc的汇编代码使用的是ATT汇编用emacs打开 汇编代码如下图 E选项指示编译器仅对输入文件进行预处理当这个选项被使用 时预处理器的输出被送到标准输出默认为屏幕而不是储存在文件里 O选项告诉GCC对源代码进行基本优化从而使得程序执行地更 快而-O2选项告诉GCC产生尽可能小和尽可能快的代码使用-O2选项 编译的速度 比使用-O时慢但产生的代码执行速度会更快 g选项告诉GCC产生能被GNU调试器使用的调试信息以便调试 你的程序可喜的是在GCC里我们能联用-g和-O产生优化代码 pg选项告诉GCC在你的程序里加入额外的代码执行时产生用的剖析信息以显示你的程序的耗时情况 GDB调试器 GCC用于编译程序而Linux的另一个GNU工具gdb则用于调试://www.wendangxiazai.com/d-909769342.htmlpar程序gdb是一个用来调试C和C程序的强力调试器我们能通过它进行 一 系列调试工作包括设置断点观查变量单步等 其最常用的命令如下装入想要调试的可执行文件终止正在调试的程序列表显示源代码执行一行源代码但不进入函数内部执行一行源代码而且进入函数内部执行当前被调试的程序终止gdb监视一个变量的值在代码里设置断点程序执行到这里时挂起不退出gdb而重新产生可执行文件不离开gdb而执行shell 下面我们来演示怎样用GDB来调试一个求012399的程序 Filenamesumc intisum sum0 fori0i100i sumi printf"thesumof12isd"sum 执行如下命令编译sumc加-g选项产生debug信息–g–osumsumc 在命令行上键入gdbsum并按回车键就可以开始调试sum了再运 行run命令执行sum屏幕上将看到如下内容 命令命令用于列出源代码对上述程序两次运行list将出现如下 画面源代码被标行号 根据列出的源程序如果我们将断点设置在第5行只需在gd