《2022年实验二LINUX下C语言使用 2.pdf》由会员分享,可在线阅读,更多相关《2022年实验二LINUX下C语言使用 2.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验二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 实验室的Dennis Ritchie 为了 UN
2、IX 的辅助开发而写的,从此C 就成为世界上使用最广泛的计算机语言。C 能在编程领域里得到如此广泛支持的原因有:(1)它是一种非常通用的语言,并且它的语法和函数库在不同的平台上都是统一的,对开发者非常有吸引力;(2)用 C 写的程序执行速度很快;(3)C 是所有版本UNIX 上的系统语言;二、文件编辑器vi vi 是在 UNIX 上被广泛使用的中英文编辑软件。vi 是 visual editor 的缩写,是UNIX提供给用户的一个窗口化编辑环境。进入 vi,直接执行vi 编辑程序即可。例: $vi test.c 显示器出现vi 的编辑窗口,同时vi 会将文件复制一份至缓冲区(buffer) 。
3、vi 先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后, 使用者可决定是否要取代原来旧有的文件。1、vi 的工作模式vi 提供二种工作模式:输入模式(insert mode)和命令模式(command mode) 。使用者进入vi 后,即处在命令模式下,此刻键入的任何字符皆被视为命令,可进行删除、修改、存盘等操作。要输入信息,应转换到输入模式。(1)命令模式在输入模式下,按ESC 可切换到命令模式。命令模式下,可选用下列指令离开vi:q! 离开 vi ,并放弃刚在缓冲区内编辑的内容:wq 将缓冲区内的资料写入磁盘中,并离开vi :w 将缓冲区内的资料写入磁盘中,但并不离开vi :
4、q 离开 vi ,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w 配合使用(2)命令模式下光标的移动H 左移一个字符J 下移一个字符K 上移一个字符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - L 右移一个字符0 移至该行的首$ 移至该行的末 移至该行的第一个字符处H 移至窗口的第一列M 移至窗口中间那一列L 移至窗口的最后一列G 移至该文件的最后一列W, W下一个单词 (W 忽略标点 )B, B 上一个单词
5、 (B 忽略标点 )+ 移至下一列的第一个字符处- 移至上一列的第一个字符处( 移至该句首) 移至该句末 移至该段首 移至该段末NG 移至该文件的第n 列N+ 移至光标所在位置之后第n 列n- 移至光标所在位置之前第n 列(3)输入模式输入以下命令即可进入vi 输入模式:a(append) 在光标之后加入资料A 在该行之末加入资料i(insert) 在光标之前加入资料ESC 离开输入模式更多用法见 info vi 三、 GNU C 编译器LINUX 上可用的C 编译器是 GNU C 编译器,它建立在自由软件基金会编程许可证的基础上,因此可以自由发布。LINUX 上的 GNU C 编译器( GC
6、C)是一个全功能的ANCI C 兼容编译器,而一般UNIX (如 SCO UNIX )用的编译器是CC。下面介绍 GCC 和一些 GCC 编译器最常用的选项。1、使用 GCC 通常后跟一些选项和文件名来使用GCC 编译器。 GCC 命令的基本用法如下:gcc options filenames 命令行选项指定的编译过程中的具体操作2、GCC 常用选项GCC 有超过 100 个的编译选项可用,这些选项中的许多可能永远都不会用到,但一些主要的选项将会频繁使用。很多的GCC 选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX 命令一样不能在一个单独的连字符后跟一组选
7、项。例如,下面的命令是不同的:gcc -p-g test.c gcc -pg test.c 第一条命令告诉GCC 编译 test.c 时为 prof 命令建立剖析 (profile )信息并且把调试信息加入到可执行文件里。第二条命令告诉GCC 只为 gprof 命令建立剖析信息。当不用任何选项编译一个程序时,GCC 将建立(假定编译成功)一个名为a.out的可执行文件。例如,gcc test.c 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - -
8、- - - - 编译成功后,当前目录下就产生了一个a.out 文件。也可用 -o 选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:gcc o count count.c 此时得到的可执行文件就不再是a.out,而是 count。GCC 也可以指定编译器处理步骤多少。-c 选项告诉GCC 仅把源代码编译为目标代码而跳过汇编和连接步骤。这个选项使用得非常频繁因为它编译多个C 程序时速度更快且更易于管理。默认时GCC 建立的目标代码文件有一个.o 的扩展名。3、执行文件格式:./可执行文件名例: ./a.out ./count 参考程序 m.c main( ) printf(Hello,world!n); Gcc m.c 作业:1 编写 test程序流程:询问用过linux 编程吗?if(回答 = y )/scanf( ) then 询问会用fork 创建子进程吗?if(回答是y)产生子进程,子进程运行helloworld 可执行程序。else 显示自己课下进行学习父进程等子进程结束退出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -