1.ubuntu cat命令的实现

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

#include<stdio.h>

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

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

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

用which cat查看cat在那个目录

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

最新文章

  1. NET Core-学习笔记(四)
  2. Js 日期转换函数(UTC时间转换及日期想加减)
  3. 解决bootstrap模态框内输入框无法获取焦点
  4. zxing--条码图像处理库
  5. HTML CSS微信CSS显示一些总结
  6. nrf51822裸机教程-SPI(主)
  7. 在C#中使用json字符串
  8. DelegatingFilterProxy
  9. VS2012添加ADO实体数据模型
  10. Spark:用Scala和Java实现WordCount
  11. 【转载】solr教程,值得刚接触搜索开发人员一看
  12. 【BZOj 3670】【UOJ #5】【NOI 2014】动物园
  13. protobuf c++ API
  14. Laravel 5 框架性能优化技巧
  15. PJSUA2开发文档--第五章 帐户(号)Accounts
  16. webView 获取内容高度不准确的原因是因为你设置了某个属性
  17. Tex: The top-level auxiliary file: *.aux I couldn&#39;t open style file IEEEtran.bst 解决方法
  18. thrift0.5入门操作
  19. MySQL 第二篇:库操作
  20. 2018 黑盾杯部分writeup

热门文章

  1. nginx 访问控制模块
  2. typescript枚举字符串型不能使用函数问题
  3. vue路由登录拦截(vue router登录权限控制)
  4. sklearn PCA的使用
  5. P1427 小鱼的数字游戏
  6. 【知识库】-数据库_MySQL性能分析之Query Optimizer
  7. DOM访问关系(父节点 子节点)
  8. Zookeeper 安装及命令行操作
  9. TCP输入 之 tcp_prequeue
  10. 使用 VS2015 编译并调试 ffmpeg