Linux C/C++基础 文件(中)
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命令的实现
#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;
} 