操作系统课程实验指导.doc

实验一UNIX/LINUX及其使用环境 (二)LINUX下C语言使用、编译与调试实验 实验目的1、复习C语言程序基本知识 2、练习并掌握UNIX提供的vi编辑器来编译C程序 3、学会利用gcc、gdb编译、调试C程序   实验内容1、用vi编写一个简单的、显示Hello,World!的C程序,用gcc编译并观察编译后的结果 2、利用gdb调试该程序 3、运行生成的可执行文件。 实验指导一、C语言使用简介   LINUX中包含了很多软件开发工具。它们中的很多是用于C和C++应用程序开发的。   C是一种能在UNIX的早期就被广泛使用的通用编程语言。它最早是由Bell实验室的DennisRitchie为了UNIX的辅助开发而写的,从此C就成为世界上使用最广泛的计算机语言。 C能在编程领域里得到如此广泛支持的原因有:   (1)它是一种非常通用的语言,并且它的语法和函数库在不同的平台上都是统一的,对开发者非常有吸引力; (2)用C写的程序执行速度很快; (3)C是所有版本UNIX上的系统语言; 二、文件编辑器vi   vi是在UNIX上被广泛使用的中英文编辑软件。vi是visualeditor的缩写,是UNIX提供给用户的一个窗口化编辑环境。 进入vi,直接执行vi编辑程序即可。 例:$vitest.c   显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要取代原来旧有的文件。 1、vi的工作模式   vi提供二种工作模式:输入模式(insertmode)和命令模式(commandmode)。使用者进入vi后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。 (1)命令模式   在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开vi: :q!离开vi,并放弃刚在缓冲区内编辑的内容 :wq将缓冲区内的资料写入磁盘中,并离开vi :ZZ同wq:x同wq:w 将缓冲区内的资料写入磁盘中,但并不离开vi   :q离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用 (2)命令模式下光标的移动 H左移一个字符 J下移一个字符 K上移一个字符 L右移一个字符 0移至该行的首 $移至该行的末 ^移至该行的第一个字符处 H移至窗口的第一列 M移至窗口中间那一列 L移至窗口的最后一列 G移至该文件的最后一列 W,W下一个单词(W忽略标点) B,B上一个单词(B忽略标点) +移至下一列的第一个字符处 -移至上一列的第一个字符处 (移至该句首)移至该句末 {移至该段首}移至该段末 NG移至该文件的第n列 N+移至光标所在位置之后第n列 n-移至光标所在位置之前第n列 (3)输入模式 输入以下命令即可进入vi输入模式: a(append)在光标之后加入资料 A在该行之末加入资料 i(insert)在光标之前加入资料 I在该行之首加入资料 o(open)新增一行于该行之下,供输入资料用 O新增一行于该行之上,供输入资料用 Dd删除当前光标所在行 X删除当前光标字符 X删除当前光标之前字符 U撤消·重做F查找   s替换,例如:将文件中的所有FOX换成duck,用:%s/FOX/duck/g ESC离开输入模式 更多用法见infovi 三、GNUC编译器   LINUX上可用的C编译器是GNUC编译器,它建立在自由软件基金会编程许可证的基础上,因此可以自由发布。   LINUX上的GNUC编译器(GCC)是一个全功能的ANCIC兼容编译器,而一般UNIX(如SCOUNIX)用的编译器是CC。下面介绍GCC和一些GCC编译器最常用的选项。   1、使用GCC通常后跟一些选项和文件名来使用GCC编译器。GCC命令的基本用法如下: gcc[options][filenames] 命令行选项指定的编译过程中的具体操作 2、GCC常用选项   GCC有超过100个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX命令一样不能在一个单独的连字符后跟一组选项。例如,下面的命令是不同的: gcc-p-gtest.c gcc-pgtest.c   第一条命令告诉GCC编译test.c时为prof命令建立剖析(profile)信息并且把调试信息加入到可执行文件里。第二条命令告诉GCC只为gprof命令建立剖析信息。   当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。例如,   gcctest

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档