第一种:标准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的方法相关推荐

  1. 【jqprint打印】js两种超简单的打印方法

    1.用jqprint插件实现打印 快速使用 jqprint是一个简单好用的打印插件,可以实现局部打印,首先是引入jq,,然后引入jqprnt //打印                 $(" ...

  2. EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team-》Easy Touch -》Add Easy Touch For C#

    EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team->Easy Touch ->Add Easy Touch Fo ...

  3. android内存池,两种常见的内存管理方法:堆和内存池

    描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...

  4. 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了

    相信大家用电脑都会截图,但有时候需要用到录屏,这就难倒了很多人.那么如何在电脑是录屏呢?下面就来教你学会两种电脑录屏的方法,以后别再说不知道了. 阅读引导: •阅读完本文预计需要2分钟时间. •本文是 ...

  5. 如何将JPG转换为PNG?两种图片格式转换的方法交给你

    在平时的工作生活当中,大家都会使用到各种各样的图片,其中jpg格式与png格式都是大家平时比较常用的图片格式,但是在使用图片时,可能会遇到只能上传其中某种格式的情况,那么这时候就需要将图片转换成相应的 ...

  6. 分分钟实现梦想 —— 两种快速打造App的方法

    分分钟实现梦想 -- 两种快速打造App的方法 几年前,做App还是土豪和移动开发者的专利.移动开发者使用Java或者C++这类开发工具,将一行行代码变成可以被手指轻松触控的应用.土豪们花钱雇佣这些移 ...

  7. 一种识别简单验证码的方法

    本文主要讲述了一种识别简单验证码的方法,本文重点不是识别这些简单的数字,而是通过识别数字这个过程理解到图片的数字构造.任何一张图片都是由三个图层构成的,每个图层是一张二维矩阵表,三张表上位置相同的三个 ...

  8. 如何去除视频水印?分享两种去除视频水印的方法

    怎么去除掉视频的水印呢?视频水印可能会导致视觉上的干扰,尤其是当水印被放置在视频的重要区域时,例如在视频的中心或底部.此外,在视频制作过程中使用有水印的素材也可能会影响最终的视频质量,因为水印可能会干 ...

  9. 两种常见的内存管理方法:堆和内存池

    在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间.为了便于内存 ...

最新文章

  1. python使用matplotlib可视化、为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)
  2. C 语言编程 — 编程实践
  3. 深入Atlas系列:客户端网络访问基础结构示例(1) - 编写并使用自定义的WebRequestExecutor...
  4. formdata 接受参数中带有class 对象_Django(五)- 请求与响应 - request对象
  5. Android 切换系统语言源码分析
  6. 阿里达摩院自主研发AI芯片 布局“中国芯”
  7. apache ab压力测试报错apr_socket_recv
  8. 我做的百度飞桨PaddleOCR .NET调用库
  9. c# mysql app.config_60. C# -- 读取 appconfig文件配置数据库连接的方法
  10. html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
  11. 字符串处理,查询第一个不是 0 的字符的位置
  12. 如何得到所有子对象_对象可能会迟到,但它永远不会缺席
  13. MySQL 用户域权限相关操作
  14. 159.Oracle数据库SQL开发之 SQL优化——若干
  15. CTF-Web SQL注入
  16. 三星q90 回音壁最新固件1010.5升级教程
  17. 笔记本装那一版本Linux好,在我的新笔记本电脑上安装五种Linux版本
  18. miui android系统 流量,小米4 MIUI6系统怎么设置流量功能?小米4 MIUI6流量管理设置?...
  19. ssm实现记住账号密码(cookie)
  20. 视频剪辑教程自学如何剪辑视频,混剪视频怎么做

热门文章

  1. semihost/ITM机制浅析以及使用JLINK通过ITM调试stm32单片机
  2. @cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...
  3. 使用express搭建服务器获取MySQL数据库数据
  4. 论文阅读 - Large-scale weakly-supervised pre-training for video action recognition
  5. LeetCode 1124. 表现良好的最长时间段(单调栈/哈希)
  6. 程序员面试金典 - 面试题 17.11. 单词距离(multimap平衡二叉搜索树)
  7. LeetCode 933. 最近的请求次数(queue)
  8. 【Python基础知识-pycharm版】第七节-函数
  9. java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
  10. vue开发手机页面闪烁_Vue页面加载闪烁问题的解决方法_婳祎_前端开发者