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;
}
欢迎留言交流。。。。