资源描述:
《西北工业大学-操作系统实验报告-实验三.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三LINUX的C语言编程一、实验目的学习在FreeBSD下使用vi编辑c语言代码,使用gcc编译,并运行。二、实验内容与要求1、查阅资料,掌握vi编辑器的基本使用,包括两种不同模式的区别,如何在两种模式之间切换,以及常用的编辑命令等;2、使用vi编写一个c程序,要求该程序通过命令行接收用户的输入,其输入参数为FreeBSD系统中的任意文本文件,接收输入后,c程序读取该文件内容,并打印在屏幕上。编辑好后,存为.c文件(如a.c),使用gcc编译该文件,运行结果文件。3、详细记录学习的内容和实验的整个过程,包括用到的vi命令,c程序
2、源代码,gcc命令,以及执行结果文件的命令等;4、对整个实验过程进行分析总结,给出详细步骤;三、实验过程1、vi编辑器的基本使用(1)vi工作模式及其切换vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入a,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处于什么模式,可以多按几次[ESC]。(2).常用命令1.vi#在命令
3、行中输入vi,进入vi编辑器2.i#按一下i键,下端显示--INSERT--#插入命令,在vi中可能任意字符都有作用3.Esc#退出i(插入)命令进行其它命令使用4.:rfilename#读入一个文件内容,并写入到当前编辑器中5.:wnewfilename#将该编辑器中的内容写入到一个新文件中6.:w#在编辑的过程中保存文件,相当于word中的ctrl+s7.:!command#暂时离开vi到指令列模式下执行command的显示结果!例如:!ls#在编辑过程中执行shell命令ls8.:sh#进入shell命令行,执行完命令后ctr
4、l+d退出重新进入vim编辑继续编辑在shell命令下,执行ctral+l完成清屏9.:wq#保存文件并退出10.ZZ#保存文件并退出,同上一个命令,注意大写11.:q!#强制退出,不保存12.:setnumber或者:setnu#使编辑中的文件显示行号13.:setnonumber或者:setnonu #与上一条命令相反,不显示行号14.:helpi#查看插入命令帮助15.u #撤消上一步操作16./Fedora#查找Fedora字符17.:s/Fedora/Redhat#将Fedora字符替换为Redhat(只替换在光标所在的行
5、)18.dw#删除单词,dd#删除行19.o#打开空白一行20.vim+filename#进行文件最后一行进行编辑21.vim+nfilename#进入文件第n行进行编辑22.:1,.s/redhat/fedora#.号表示当前行,即光标所在行#将第1行到当前行(.)第一次出现的redhat字符代替为fedora23.:1,.s/redhat/fedora/g#将第1行到当前行(.)所有出现的redhat字符代替为fedora,g全局标志24.:1,$s/redhat/fedora/g#$表示最后一行#将第1行到最后一行所有出现的r
6、edhat字符代替为fedora25.:%s/redhat/fedora/g#同上一个命令26.:%s/redhat/fedora/g#将第1行到最后一行所有出现的redhat字代替为fedora#字,而不是字符27.:f#显示文件内容,状态等等#同ctrl+g命令28.:e!#当前文件,返回到上次保存:efile#切换编辑文件29.:n#当编辑时有多个文件(比如vimfile1file2)时切换到下一个文件,与:efile结合使用基本使用如下图所示:2、使用vi编写一个c程序,读取文件内容,并打印在屏幕上。假设读取文件a.txt
7、中的内容,a.txt中的内容如下图所示:源程序为a.c,源程序内容如下所示:#include#include#includeintmain(void){intch=0;FILE*fp=NULL;chars[100];printf("请输入文件名:");scanf("%s",s);fp=fopen(s,"r");if(fp==NULL){printf("Cann'topenthefile!");exit(1);}else{while((ch=fgetc(fp))!=EO
8、F){putchar(ch);//或者printf("%c",ch);}printf("");fclose(fp);}return0;}运行结果如下图所示:一、实验分析与总结在实验过程中,遇到了不少问题,在使用vi时,由于对命令不