码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-11-12 22:04:48      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:长度   print   return   技术   fclose   inux   inf   str   turn   

 1.ubuntu cat命令的实现

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

技术图片

#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;
}

技术图片

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

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

      用which cat查看cat在那个目录

       技术图片

 技术图片

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

  1 #include<stdio.h>                                                                                          
  2 #include<string.h>
  3 int main(int argc,char*argv[])
  4 {
  5    //1.已写的方式打开,w,路径为argv[1]
  6    //2.从键盘读取内容fgets(),放在字符数组
  7    //3.字符数组内容,一个一个字符往文件写
  8    //4.关闭文件
  9 
 10    FILE*fp=fopen(argv[1],"w");
 11    char buf[1024];
 12    while(1)
 13    {
 14        //默认遇到换行符,此处结束读取,换行符都放在buf
 15        //fgets()按行读取
 16        fgets(buf,sizeof(buf),stdin);
 17        //如果用户输入的内容为:wq,结束,保存文件,strncmp函数用于比较特定长度的字符串,当string1大于string2时,返回1;等于时,返回0;小于时,返回-1。
 18         if(strncmp(buf,":wq",3)==0)
 19         {
 20            break;
 21         }
 22         int i=0;
 23         while(buf[i]!=\0)
 24         {
 25             fputc(buf[i],fp);
 26             i++;
 27         }
 28    }
 29 
 30    fclose(fp);
 31    fp=NULL;
 32 
 33    return 0;
 34 
 35 }
 36    

 

           技术图片

 

 

 

 

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

标签:长度   print   return   技术   fclose   inux   inf   str   turn   

原文地址:https://www.cnblogs.com/xiangdongBig1/p/11845384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!