Linux C/C++基础 文件(中)

 1.ubuntu cat命令的实现

cat——查看或者合并文件内容

Linux C/C++基础 文件(中)

#include<stdio.h>
   
int main(int argc,char* argv[])
{
   
      //1.打开文件,文件路径,argv[1]
      //2.读取文件的内容,将内容显示到屏幕
      //3.关闭文件
      FILE*fp=fopen(argv[1],"r");
   
      while(1)
      {
          if(feof(fp))
          {
             break;
          }
          ch=fgetc(fp);
         printf("%c",ch);
      }
      fclose(fp);
      fp=NULL;
      return 0;
}

Linux C/C++基础 文件(中)

      上面实现了cat的功能,但是在执行的时候还需要加./

      下面将mycat加入到bin目录,实现不加./,直接输入命令功能

      用which cat查看cat在那个目录

       Linux C/C++基础 文件(中)

 Linux C/C++基础 文件(中)

   2.最基本的vim命令的实现

#include<stdio.h>                                                                                          
#include<string.h>
int main(int argc,char*argv[])
{
   //1.已写的方式打开,w,路径为argv[1]
   //2.从键盘读取内容fgets(),放在字符数组
   //3.字符数组内容,一个一个字符往文件写
   //4.关闭文件

   FILE*fp=fopen(argv[1],"w");
   char buf[1024];
   while(1)
   {
       //默认遇到换行符,此处结束读取,换行符都放在buf
       //fgets()按行读取
       fgets(buf,sizeof(buf),stdin);
       //如果用户输入的内容为:wq,结束,保存文件,strncmp函数用于比较特定长度的字符串,当string1大于string2时,返回1;等于时,返回0;小于时,返回-1。
        if(strncmp(buf,":wq",3)==0)
        {
           break;
        }
        int i=0;
        while(buf[i]!=‘\0‘)
        {
            fputc(buf[i],fp);
            i++;
        }
   }

   fclose(fp);
   fp=NULL;

   return 0;

}

           Linux C/C++基础 文件(中)

相关推荐