1.cp (拷贝) 已存在文件路径 要拷贝的文件路径
实现cp命令的代码如下:
2 #include <stdio.h> 3 4 //因为要在命令中得到两个路径,所以要用到main函数的两个参数 5 int main(int argc,char **argv){ 6 7 char buf[100]={0}; 8 9 int size=0; 10 /* int buf[100]={0} ; 代表数组里的单个存储区占四个字节。 如果我们从原始文件> 里拿出来的数据是3个字节,那么就放不进去*/ 11 FILE * p_src=NULL,*p_dest=NULL; 12 13 if (argc <3){ 14 printf("格式命令错误\n"); 15 return 0; 16 } 17 18 //拷贝的思路1:把原文件读到内存中,然后在写入新文件中。原文件可能非常大。 19 //拷贝的思路2:蚂蚁搬家 20 p_src=fopen(*(argv+1),"rb"); 21 //argv 代表一个指针数组, 22 //指针数组里的第一个指针是./out文件,第二个指针是原始文件路径 23 24 //分支处理打开失败的情况 25 if(!p_src){ 26 printf("原始文件打开失败\n"); 27 return 0; 28 } 29 30 p_dest=fopen(*(argv+2),"wb"); 31 32 if(!p_dest){ 33 printf("新文件打开失败\n"); 34 fclose("p_src"); 35 p_src=NULL; 36 return 0; 37 } 38 39 while(1){ 40 size=fread(buf,sizeof(char),100,p_src); 41 if(!size){break;} 42 fwrite(buf,sizeof(char),size,p_dest); 43 } 44 //从原始文件里拿到多少个数据,就写多少个数据。 45 fclose("p_dest"); 46 p_dest=NULL; 47 48 fclose("p_src"); 49 p_src=NULL; 50 51 52 return 0; 53 }
2.tar 命令
使用zcvf选项 打包 (把多个文件打包成一个压缩文件)。
使用zxvf选项 恢复 (把一个大包压缩好的文件内容恢复成普通文件)。
错误订正:代码第22行 应该为./a.out 文件
原文地址:https://www.cnblogs.com/30ends/p/9270164.html
时间: 2024-10-12 06:29:11