cp/tar/用c语言编写程序 实现cp命令的效果
1.cp (拷贝) 已存在文件路径 要拷贝的文件路径
实现cp命令的代码如下:
#include <stdio.h> //因为要在命令中得到两个路径,所以要用到main函数的两个参数
int main(int argc,char **argv){ char buf[]={}; int size=;
/* int buf[100]={0} ; 代表数组里的单个存储区占四个字节。 如果我们从原始文件> 里拿出来的数据是3个字节,那么就放不进去*/
FILE * p_src=NULL,*p_dest=NULL; if (argc <){
printf("格式命令错误\n");
return ;
} //拷贝的思路1:把原文件读到内存中,然后在写入新文件中。原文件可能非常大。
//拷贝的思路2:蚂蚁搬家
p_src=fopen(*(argv+),"rb");
//argv 代表一个指针数组,
//指针数组里的第一个指针是./out文件,第二个指针是原始文件路径 //分支处理打开失败的情况
if(!p_src){
printf("原始文件打开失败\n");
return ;
} p_dest=fopen(*(argv+),"wb"); if(!p_dest){
printf("新文件打开失败\n");
fclose("p_src");
p_src=NULL;
return ;
} while(){
size=fread(buf,sizeof(char),,p_src);
if(!size){break;}
fwrite(buf,sizeof(char),size,p_dest);
}
//从原始文件里拿到多少个数据,就写多少个数据。
fclose("p_dest");
p_dest=NULL; fclose("p_src");
p_src=NULL; return ;
}
2.tar 命令
使用zcvf选项 打包 (把多个文件打包成一个压缩文件)。
使用zxvf选项 恢复 (把一个大包压缩好的文件内容恢复成普通文件)。
错误订正:代码第22行 应该为./a.out 文件
cp/tar/用c语言编写程序 实现cp命令的效果的更多相关文章
- C语言编写程序的大小端问题
有时候,用C语言写程序需要知道大端模式还是小端模式,,由于寄存器大于一个字节(8bit),就会存在一个字节安排的问题,例如(16bit)的short型,(32bit)的int型,具体需要看具体的编译器 ...
- C语言编写程序计算圆上的点的坐标
Problem Description There is a cycle with its center on the origin. Now give you a point on the cycl ...
- 基于php基础语言编写的小程序之计算器
基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...
- C语言编写的bmp读写程序
C语言编写的bmp读写程序 建议先把bmp的数据存储格式了解下 <span style="font-size:16px;">#include "Windows ...
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h> void main(void) { EA=1; //开放总中断 E ...
- [转载] 使用C/C++语言编写基于DSP程序的注意事项
原文地址:『转』使用C/C++语言编写基于DSP程序的注意事项作者:skysmile 1.不影响执行速度的情况下,可以使用c或c/c++语言提供的函数库,也可以自己设计函数,这样更易于使用“裁缝师 ...
- 【C语言】编写程序,输出以下图形
编写程序输出以下图形: * ** *** **** ***** 代码: #include <stdio.h> int main() { int i, j; ; i <= ; i++) ...
- 图解安装CLion编写程序并进行单元测试
我对JetBrains公司的IDE情有独钟,于是这里使用的IDE是CLion,CLion是以IntelliJ为基础,专为开发C及C++所设计的跨平台IDE,可以在Windows.Linux及MacOS ...
随机推荐
- py2neo的使用(转)
转自:https://blog.csdn.net/sinat_26917383/article/details/79901207#24-%E7%B1%BB%E4%BC%BCset%E7%9A%84%E ...
- jQuery之animate中的queue
queue.dequeue clearQueue 清空 用队列完成之前动画的操作:
- Java开发经常容易犯的错误
调用Set.addAll()方法时抛UnsupportedOperationException异常 上面的Set是Map中keySet的返回结果. 程序中这样两句代码运行时,抛UnsupportedO ...
- vs中添加库文件WinMM.Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\WinMM.Lib;
- CodeWarrior 10 配置Jlint初始化文件
新建一个项目之后,飞思卡尔的仿真器的配置不如德州仪器那么简单.他需要一些配置. 当我们新建一个工程后,可以采取如下步骤配置Jlint: 1.右击工程名,选择属性. 2.在Run/Debug Setti ...
- 关于textarea标签自己遇到的问题
效果描述: 固定文本框的宽高,让文本框不被拖拽,让提示内容的文字垂直居中 html: <div> <label>活动详情</label> <textarea ...
- Android 菊花加载工具类
先看看实现效果图 1.首先自定义一个类继承系统ProgressDialog /** * Created by hanbao0928 on 2018/11/1. */ public class Dial ...
- c# int类型的转datetime类型
int a =20190319; DateTime b = DateTime.ParseExact(a.tostring(),"yyyyMMdd",System.Globali ...
- Getting.Started.with.Unity.2018.3rd.Edition
Getting Started with Unity 2018 - Third Edition: A Beginner's Guide to 2D and 3D game development wi ...
- Babel插件:@babel/plugin-transform-runtime
一 概述 每个Babel编译后的脚本文件,都以导入的方式使用Babel的帮助函数,而不是每个文件都复制一份帮助函数的代码. 1 优点 (1)提高代码重用性,缩小编译后的代码体积. (2)防止污染全局作 ...