当前位置: 首页 > news >正文

数据拷贝的实现

本程序实现数据拷贝。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUFSIZE 4096

int main(int argc,char* argv[])
{
    if(argc!=1&&argc!=3)
    {
     fprintf(stderr,"Invalid argument number\n");
     exit(1);
    }
    int from,to;
    int n;
    char buf[BUFSIZE];
    if(argc==1)
    {
      from = STDIN_FILENO;
      to = STDOUT_FILENO;
    }    
    else
    {
      if((from = open(argv[1], O_RDONLY))==-1)
      {
        fprintf(stderr,"open %s error\n",argv[1]);
        exit(2);
      }
      if((to = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR))==-1)
      {
        fprintf(stderr,"open %s error\n",argv[2]);
        exit(3);
      }
    }
    
    while ((n = read(from, buf, BUFSIZE)) > 0)
    {
      if (write(to, buf, n) != n)
      {
        fprintf(stderr, "write error\n");
        exit(4);
      }
      if (n < 0) 
      {
        fprintf(stderr, "read error\n");
        exit(5);
      }
    }
     close(from);
     close(to);
     exit(0);
}





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5395711.html,如需转载请自行联系原作者

相关文章:

  • redis遇到过的问题汇总(持续更新)
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • 13.Zookeeper的java客户端API使用方法
  • vue-loader 源码解析系列之 selector
  • 一行一行读Java源码——迭代器
  • asp.net core ef core mysql 新增数据并发异常处理
  • xshell连接Ubuntu系统
  • 多维分析的后台性能优化手段
  • 企业级自动化运维工具应用实战-ansible
  • 网络编程 与 面向对象
  • MapGIS6.7投影生成线-以物化探综合剖面图为例
  • C# 编码命名规则
  • HttpClient超时机制(安全问题处理:访问超大文件控制)
  • 关于如何在ElementUI中实现统计Table筛选结果数量
  • iOS网络基础 实战进阶篇
  • 【Amaple教程】5. 插件
  • android图片蒙层
  • Babel配置的不完全指南
  • Gradle 5.0 正式版发布
  • HashMap剖析之内部结构
  • React-flux杂记
  • 闭包--闭包作用之保存(一)
  • 从PHP迁移至Golang - 基础篇
  • 搭建gitbook 和 访问权限认证
  • 近期前端发展计划
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用parted解决大于2T的磁盘分区
  • 使用权重正则化较少模型过拟合
  • 事件委托的小应用
  • 新书推荐|Windows黑客编程技术详解
  • 《天龙八部3D》Unity技术方案揭秘
  • C# - 为值类型重定义相等性
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • postgresql行列转换函数
  • ​Spring Boot 分片上传文件
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # .NET Framework中使用命名管道进行进程间通信
  • #QT(智能家居界面-界面切换)
  • $.ajax,axios,fetch三种ajax请求的区别
  • (阿里云万网)-域名注册购买实名流程
  • (第27天)Oracle 数据泵转换分区表
  • (二)linux使用docker容器运行mysql
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (算法设计与分析)第一章算法概述-习题
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)VirtualBox安装增强功能
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core 版本不支持的问题