西北工业大学-操作系统实验报告-实验三.doc

  • 格式:doc
  • 大小:146.52 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 LINUX的C语言编程

一、实验目的

学习在 FreeBSD 下使用 vi 编辑 c 语言代码,使用gcc 编译,并运行。

二、实验内容与要求

1、查阅资料,掌握vi 编辑器的基本使用,包括两种不同模式的区别,如何在两种模

式之间切换,以及常用的编辑命令等;

2、使用 vi 编写一个 c 程序,要求该程序通过命令行接收用户的输入,其输入参数为

FreeBSD系统中的任意文本文件,接收输入后, c 程序读取该文件内容,并打印在屏幕

上。编辑好后,存为.c 文件(如 a.c ),使用 gcc 编译该文件,运行结果文件。

3、详细记录学习的内容和实验的整个过程,包括用到的vi 命令, c 程序源代码, gcc

命令,以及执行结果文件的命令等;

4、对整个实验过程进行分析总结,给出详细步骤;

三、实验过程

1、vi 编辑器的基本使用

(1) vi 工作模式及其切换

vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入a, vi 即认为是在当前位置插入字符。而在输入模式下,vi 则把输入的按键当

作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A ),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处于

什么模式,可以多按几次[ESC] 。

(2).常用命令

1.vi# 在命令行中输入vi, 进入 vi 编辑器

2.i# 按一下 i 键, 下端显示 --INSERT--

#插入命令 , 在 vi 中可能任意字符都有作用

3.Esc# 退出i( 插入 ) 命令进行其它命令使用

4.:r # 读入一个文件内容, 并写入到当前编辑器中

5.:w new# 将该编辑器中的内容写入到一个新文件中

6.:w# 在编辑的过程中保存文件, 相当于word 中的ctrl+s

7.:! command# 暂时离开vi 到指令列模式下执行command 的显示结果!例如

:!ls# 在编辑过程中执行shell 命令ls

8.:sh# 进入shell 命令行, 执行完命令后ctrl+d 退出重新进入vim 编辑继续编辑在 shell 命令下,执行 ctral+l 完成清屏

9.:wq# 保存文件并退出

10.ZZ# 保存文件并退出, 同上一个命令, 注意大写

11.:q!#强制退出,不保存

12.:set number或者:

set nu#使编辑中的文件显示行号

13.:set nonumber或者:set nonu

#与上一条命令相反, 不显示行号

14.:help i#查看插入命令帮助

15.u#撤消上一步操作

16./Fedora#查找Fedora 字符

17.:s /Fedora/Redhat#将Fedora字符替换为Redhat( 只替换在光标所在的行)

18.dw# 删除单词, dd#删除行

19.o# 打开空白一行

20.vim + #进行文件最后一行进行编辑

21.vim +n #进入文件第n 行进行编辑

22.:1,.s/redhat/fedora#.号表示当前行, 即光标所在行

#将第 1 行到当前行 (.) 第一次出现的redhat字符代替为fedora

23.:1,.s/redhat/fedora/g#将第1行到当前行(.)所有出现的r edhat字符代替为fedora,g全局标志

24.:1,$s/redhat/fedora/g#$表示最后一行

# 将第 1 行到最后一行所有出现的redhat字符代替为fedora

25.:%s/redhat/fedora/g#同上一个命令

26.:%s/redhat\/fedora/g

# 将第 1 行到最后一行所有出现的redhat字代替为fedora

#字 , 而不是字符

27.:f#显示文件内容, 状态等等

#同 ctrl+g 命令

28.:e!#当前文件,返回到上次保存

:e file#切换编辑文件

29.:n# 当编辑时有多个文件( 比如 vim file1 file2)时切换到下一个文件, 与 :e file 结合使用

基本使用如下图所示:

2、使用vi编写一个c程序,读取文件内容,并打印在屏幕上。

假设读取文件 a.txt中的内容, a.txt中的内容如下图所示:

源程序为 a.c,源程序内容如下所示:

#include

#include

#include

int main(void)

{

int ch = 0;

FILE *fp = NULL;

char s[100];

printf(" 请输入文件名:\n");

scanf("%s", s);

fp = fopen(s, "r");

if (fp == NULL)

{

printf("\nCann't open the file!");

exit(1);

}

else

{

while ( ( ch = fgetc(fp) ) != EOF)

{

putchar(ch);// 或者 printf("%c", ch);

}