数据拷贝的实现

本程序实现数据拷贝。

#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);
}

数据拷贝的实现

时间: 2024-10-09 23:44:31

数据拷贝的实现的相关文章

void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助

分享到 腾讯微博 QQ空间 新浪微博 人人网 朋友网 memmove 编辑词条 编辑词条 --> memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中.但复制后src内容会被更改.但是当目标区域与源区域没有重叠则和memcpy函数功能相同. 快速导航 目录 1函数简介 2程序示例 大事记 光影集锦 图册集锦 花絮视频 1函数简介 原型:void *memmove( void* dest,

远程桌面数据拷贝方式

在我们日常使用当中,经常会遇到本地机器与服务器之间的远程桌面进行数据的拷贝,这里简单说明几种数据拷贝的方式,有时候一种方式无法拷贝,可以换其他的方式来进行尝试. 1.共享剪切板方式 共享剪切板的方式可以直接对文件进行复制和粘贴,比较方便. 2.共享设备资源方式 如果无法共享剪切板,可以使用共享本地资源(如磁盘)的方式,点击上图的[详细信息-]可以打开共享设置界面. 3.直接打开远程桌面磁盘进行拷贝 可以在本机上直接运行\\IP\d$的方式,在本地打开远程服务器的某一磁盘进行文件的拷贝. 其中IP

docker数据拷贝

docker数据拷贝的方式有很多种,下面介绍几种数据拷贝的方式:此处只是介绍几种简易的方式,更多方式可以google下. 从容器中向主机拷贝数据 docker cp <containerId>:/file/path/within/container /host/path/target docker cp 8e7e5f4574f4:/root/test.txt ./test.txt 从主机向容器中拷贝数据 docker cp /host/path/target <containerId&g

vbs读取文件内的信息将对应数据拷贝到其他路径

公司的人数众多,使用的是domino8.5+Exchange邮箱系统. 我们知道microsoft已经推出windows azure服务,所谓的公有云,我们已经在前面的几篇文档内介绍了,具体信息我就不多介绍了:自从公司购买了windows azure服务后,领导建议开始优化邮件服务的架构,将本地的服务器开始迁移windows azure运行,从IBM的官网得知,一台domino服务器最大承载用户2000-2500人,可我们在真实使用中,跟预想的不一样,只能跑1000-1200个用户,服务器能运行

Hadoop集群间数据拷贝

有时候,我们需要做Hadoop集群迁移时,要把大量存储在Hadoop集群上的数据也一并迁移过去.有2种方法可以使用: 1. old hadoop cluster--->old local disks---->transmission---->new local disks----->new hadoop cluster 2. old hadoop cluster---->mapreduce--->new hadoop cluster 很显然第一种方法很不靠谱,我们采用第

六月考核:LINUX如何把数据拷贝到移动硬盘

六月考核:LINUX如何把数据拷贝到移动硬盘 1.使用Putty,远程登录到系统界面 2.使用fdisk -l 命令查看一下U盘是否有被识别到,及识别的U盘是在哪个位置 3.本次接入看到U盘的位置是/dev/sdb1 4.然后输入挂载U盘命令:mount /dev/sdb1 /mnt回车后即挂载U盘成功继续输入:cd 回车,可以查看U盘下的文件 5.接着是拷贝桌面上的5.png文件到U盘中输入命令:cp /home/user/desktop/5.png /mnt回车后等待复制完成 6.拷贝完成后

远程桌面连接与本地机器之间数据拷贝

远程桌面连接也就是mstsc.exe应用程序,打开远程桌面连接,如果我们想把本地数据拷贝到远程桌面,或者将远程桌面的数据拷贝到本地,该如何操作呢?有两种方式可以选择: 方式一:普通文本或其他格式的数据(数据大小在2G以下),可以在远程桌面与本地桌面之间直接拖拽即可 方式二:将本地硬盘挂接到远程桌面所在的机器,具体操作如下图 实现本地磁盘挂接到远端机器后,在无端的机器上打开"我的电脑",便会发现本地的磁盘已挂接上,接下来即可直接在本地盘和远端盘之间做任意的数据拷贝了 原文地址:https

linux数据拷贝复制到移动硬盘的问题

   问题:我服务器中有些数据需要find出来拷贝到移动硬盘中,并保持原目录结构, find ./ -name '*' -exec cp -v --parents {} /mnt \; 我是这样写的,./下的子目录会在/mnt中创建,有个问题就是我需要在/mnt/中创建的子目录里另建一个目录data,然后把子目录中的数据放到子目录下的data文件夹里,最后就是 /mnt/创建的子目录/data/原子目录的数据,请问这样用shell脚本怎样实现,小弟菜鸟,望高手指教. 你可以分成两次find操作嘛

hbase 数据拷贝

由于运营数据太大,另外避免影响正常访问,所以需要临时拷贝部分数据到临时表中. bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR] tablename bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1265875194289 --e