两种实现简单cp的方法
第一种:标准IO
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #define N 32 void mycp(const char * sour,const char * des); int main(int argc, const char *argv[]) {mycp(argv[1],argv[2]);return 0; }void mycp(const char * sour,const char * des) {int fd1 = open(sour,O_RDONLY|O_CREAT,0777);if(0>fd1){perror("fd1");return;}int fd2 = open(des,O_WRONLY|O_CREAT|O_TRUNC,0777);if(0>fd2){perror("fd2");return;}char buf[N];//ssize_t r = read(fd1,buf,N); ssize_t r;while(0<(r=read(fd1,buf,N))){//此处写入的个数write(fd2,buf,r);//r = read(fd1,buf,N); }close(fd1);close(fd2); }
第二种,文件IO
#include <stdio.h> void mycp(const char * sour,const char * des); int main(int argc, const char *argv[]) {if(3 != argc){printf("参数格式不正确,请重新输入\n");return -1;}mycp(argv[1],argv[2]);return 0; }void mycp(const char * sour,const char * des) {FILE *psour = fopen(sour,"r");FILE *pdes = fopen(des,"w");if(NULL == psour || NULL ==pdes){printf("打开文件失败,无法继续\n");return;}int ch = fgetc(psour);while(EOF != ch){fputc(ch,pdes);ch = fgetc(psour);}fclose(psour);fclose(pdes); }
转载于:https://www.cnblogs.com/billcharint/p/10757606.html
两种实现简单cp的方法相关推荐
- 【jqprint打印】js两种超简单的打印方法
1.用jqprint插件实现打印 快速使用 jqprint是一个简单好用的打印插件,可以实现局部打印,首先是引入jq,,然后引入jqprnt //打印 $(" ...
- EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team-》Easy Touch -》Add Easy Touch For C#
EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team->Easy Touch ->Add Easy Touch Fo ...
- android内存池,两种常见的内存管理方法:堆和内存池
描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...
- 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了
相信大家用电脑都会截图,但有时候需要用到录屏,这就难倒了很多人.那么如何在电脑是录屏呢?下面就来教你学会两种电脑录屏的方法,以后别再说不知道了. 阅读引导: •阅读完本文预计需要2分钟时间. •本文是 ...
- 如何将JPG转换为PNG?两种图片格式转换的方法交给你
在平时的工作生活当中,大家都会使用到各种各样的图片,其中jpg格式与png格式都是大家平时比较常用的图片格式,但是在使用图片时,可能会遇到只能上传其中某种格式的情况,那么这时候就需要将图片转换成相应的 ...
- 分分钟实现梦想 —— 两种快速打造App的方法
分分钟实现梦想 -- 两种快速打造App的方法 几年前,做App还是土豪和移动开发者的专利.移动开发者使用Java或者C++这类开发工具,将一行行代码变成可以被手指轻松触控的应用.土豪们花钱雇佣这些移 ...
- 一种识别简单验证码的方法
本文主要讲述了一种识别简单验证码的方法,本文重点不是识别这些简单的数字,而是通过识别数字这个过程理解到图片的数字构造.任何一张图片都是由三个图层构成的,每个图层是一张二维矩阵表,三张表上位置相同的三个 ...
- 如何去除视频水印?分享两种去除视频水印的方法
怎么去除掉视频的水印呢?视频水印可能会导致视觉上的干扰,尤其是当水印被放置在视频的重要区域时,例如在视频的中心或底部.此外,在视频制作过程中使用有水印的素材也可能会影响最终的视频质量,因为水印可能会干 ...
- 两种常见的内存管理方法:堆和内存池
在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间.为了便于内存 ...
最新文章
- python使用matplotlib可视化、为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)
- C 语言编程 — 编程实践
- 深入Atlas系列:客户端网络访问基础结构示例(1) - 编写并使用自定义的WebRequestExecutor...
- formdata 接受参数中带有class 对象_Django(五)- 请求与响应 - request对象
- Android 切换系统语言源码分析
- 阿里达摩院自主研发AI芯片 布局“中国芯”
- apache ab压力测试报错apr_socket_recv
- 我做的百度飞桨PaddleOCR .NET调用库
- c# mysql app.config_60. C# -- 读取 appconfig文件配置数据库连接的方法
- html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
- 字符串处理,查询第一个不是 0 的字符的位置
- 如何得到所有子对象_对象可能会迟到,但它永远不会缺席
- MySQL 用户域权限相关操作
- 159.Oracle数据库SQL开发之 SQL优化——若干
- CTF-Web SQL注入
- 三星q90 回音壁最新固件1010.5升级教程
- 笔记本装那一版本Linux好,在我的新笔记本电脑上安装五种Linux版本
- miui android系统 流量,小米4 MIUI6系统怎么设置流量功能?小米4 MIUI6流量管理设置?...
- ssm实现记住账号密码(cookie)
- 视频剪辑教程自学如何剪辑视频,混剪视频怎么做
热门文章
- semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机
- @cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...
- 使用express搭建服务器获取MySQL数据库数据
- 论文阅读 - Large-scale weakly-supervised pre-training for video action recognition
- LeetCode 1124. 表现良好的最长时间段(单调栈/哈希)
- 程序员面试金典 - 面试题 17.11. 单词距离(multimap平衡二叉搜索树)
- LeetCode 933. 最近的请求次数(queue)
- 【Python基础知识-pycharm版】第七节-函数
- java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
- vue开发手机页面闪烁_Vue页面加载闪烁问题的解决方法_婳祎_前端开发者