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

Linux C/C++基础 文件(中)的更多相关文章

  1. 查看Linux下*.a库文件中文件、函数、变量

    查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...

  2. Linux显示检查设置文件中的语法是否正确

    Linux显示检查设置文件中的语法是否正确 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ apachectl [conflgtest] 程序"apa ...

  3. linux 批量替换所有文件中包含的字符串

    sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .` 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...

  4. linux下向一个文件中的某行插入数据的做法

    sed -i 'ni\x' test.file        表示向test.file文件里的第n行的前面添加x内容sed -i 'na\x' test.file       表示向test.file ...

  5. linux命令-查找所有文件中包含某个字符串

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...

  6. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

  7. Linux Shell 之 对文件中的行、单词、字符进行迭代

    在进行文本文件进行处理时,对文件件中的行.单词.字符进行迭代和遍历是非常常用的操作.而将一个简单的循环用于迭代,再加上来自stdin或文件的重定向,这就是对文件中的行.单词.和字符进行迭代的基本方法. ...

  8. Linux C/C++基础 文件(下)

    1.fgets和fputs #include <stdio.h> int fputs(const char * str, FILE * stream); 功能:将str所指定的字符串写入到 ...

  9. Linux C/C++基础——文件(上)

    1.文件指针 FILE* fp=NULL; fp指针,只调用了fopen(),在堆区分配空间,把地址返回给fp fp指针不是指向文件,fp指针和文件关联,fp内部成员保存在文件的状态 操作fp指针,不 ...

随机推荐

  1. php类知识---命名空间

    <?php #命名空间namespace用来解决类的命名冲突,和引用问题 namespace trainingplan1; class mycoach { public function tra ...

  2. 【agc004e】Salvage Robots

    题目大意 一个n*m的矩阵,矩阵内有一个出口和若干个机器人,每一步操作可以使所有的机器人向任意方向移动一格,如果机器人出了边界就爆炸.求最多可以让多少个机器人走到出口. 解题思路 发现,移动所有机器人 ...

  3. 使用canvas画布生成二维码

    1. 基本用法 <canvas>标签只有两个属性-----width和height CSS: <canvas class="qrcode" width=" ...

  4. [Python之路] ORM(对象关系映射)

    一.概念 ORM是Python后端Web框架Django的核心思想,"Object Relational Mapping",即对象-关系映射,简称ORM. 一句话理解就是: 创建一 ...

  5. java中的排列组合

    使用之前需要声明一个Combine的对象,调用startCombile方法,可返回想要的组合数或者个数,参数介绍很重要 public class Combine { private Object[] ...

  6. Ubuntu:电源管理

    本文适用于Ubuntu 16.04,造冰箱的大熊猫@cnblogs 2018/3/4 在Ubuntu 16.04中,与电源管理相关的选项位于System Settings下的Power对话框中. 要启 ...

  7. Python 运算符优先级

    这个表给出Python的运算符优先级(从低到高). 从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合). 这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上 ...

  8. 使用matplotlib绘制常用图表(3)-其他图表绘制

    一.绘制三点图 """ 三月份最高气温 a = [12,15,18,6,7,5,6,8,9,10,15,10,4,5,11,10,5,6,12,15,10,5,14,10 ...

  9. E. Compress Words(Hash,KMP)

    E. Compress Words time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  10. 关于java中对BigDecimal加减乘除的基本用法

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数. 在实际应用中,需要对更大或者更小的数进 ...