标签:长度 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
标签:长度 print return 技术 fclose inux inf str turn
原文地址:https://www.cnblogs.com/xiangdongBig1/p/11845384.html