myecho、mycat、mycp分别用于模拟系统命令echo、cat、cp
代码如下:
myecho
#include<stdlib.h>
#include<stdio.h>
int main(int argc,char *argv[]){if(argc==1){printf("Error:need parameter!\n");exit(0);}for(int i=1;i<argc;i++)printf("%s ",argv[i]);printf("\n");return 0;
}
mycat
#include<stdio.h>
#include<stdlib.h>int main(int argc,char *argv[]){FILE *fp;int fsize;char *buffer;if(argc!=2){printf("Error:parameter wrong...\n");exit(0);}fp=fopen(argv[1],"r");if(!fp){printf("Error:can't open the file!\n");exit(0);}fseek(fp,0,SEEK_END);fsize=ftell(fp);rewind(fp);buffer=(char*)malloc((1+fsize)*sizeof(char));if(!buffer){printf("Error:memory malloc wrong!\n");exit(0);}fread(buffer,1,fsize,fp);printf("%s\n",buffer);fclose(fp);free(buffer);return 0;}
mycp
#include<stdio.h>
#include<stdlib.h>int main(int argc,char *argv[]){FILE *fp;int fsize;int fr;char *buffer;if(argc!=3){printf("Error:wrong parameter...\n");return 0;}fp=fopen(argv[1],"r");if(!fp){printf("Error:can't open the file!\n");exit(0);}fseek(fp,0,SEEK_END);fsize=ftell(fp);rewind(fp);buffer=(char *)malloc((1+fsize)*sizeof(char));if(!buffer){printf("Error:memory wrong!\n");exit(0);}fr=fread(buffer,1,fsize,fp);if(!fr){printf("Error:read wrong!\n");exit(0);}fclose(fp);fp=fopen(argv[2],"w");if(!fp){printf("Error:open file wrong!\n");exit(0);}fwrite(buffer,1,fsize,fp);fclose(fp);free(buffer);return 0;}
欢迎留言交流。。。。