文件复制命令CP 的简单实现

文件复制在程序中经常会用到,不过最主要的是对文件的操作。
/*
    本程序所实现的功能为 【**.exe srcFile  desFile】 ,就是将srcFile 拷贝一份到desfile,
    所以在运行程序时必须在后面添加两个参数,第一个是已经存在的文件的路径,另一个是需要
    复制到的路径。
    本程序主要是利用文件操作函数中的 fgetc() 函数 与 fputc() 函数。

    函数说明:
        fgetc(FILE *fp):
            从流中读取一个字符,同时没取完一个字符fp 指针会自动指向下一个字符。
            当读取错误时会返回EOF。可以通过返回值判断当前文件是否读完。
        fputc(char ch, FILE *fp):
            向流中输入一个字符,与fgetc 相似,在每写入一个后fp 指向下一个,等待继续输入,或者
            流关闭

    在函数中我们还需要用到 fopen(char * fileName, char *type),第一个参数就是我们所需要的文件路径,
    第二个参数就是读取的方式。读取方式如下:
        r:只读方式打开一个文本,只允许读数据
        w:只写打开或建立一个文本文件,只允许写数据
        a:追加打开一个文本文件,并在文件末尾写数据
        rb:只读打开一个二进制文件,只读
        wb:只写打开,或建立一个二进制文件,只允许写数据
        ab:追加打开一个二进制文件,并在文件末尾写数据
        r+:读写打开一个文本文件,允许写和读
        w+:读写打开或建立一个文本文件,可以读和写
        a+:读写打开一个文本文件,允许读,或在文件末尾追加数据
        rb+:读写打开一个二进制文件,允许读和写
        wb+:读写打开或建立一个二进制文件,允许读和写
        ab+:读写打开一个二进制文件,允许读,或在文件末尾追加数据
    还有第二个函数fclose(FILE *fp) ,也就是关闭文件流,这个很重要

*/

#include<stdio.h>// 在这个头文件中包含了我们所需要的各个文件操作函数
int main(int argc, char* argv[])
{
    FILE *srcFile , *desFile;//定义两个文件指针
    if(argc != 3)// 判断参数输入是否满足要求
    {
        printf("Please input <%s srcFile desFile>",argv[0]);// 这个地方提示用户程序执行的正确方式
        return 0;
    }
    srcFile = fopen(argv[1],"rb");//以读取二进制的方式打开源文件
    if(srcFile == NULL)
    {
        printf("Source file open failure!!");
        return 0;
    }

    desFile = fopen(argv[2],"wb");//以写入二进制方式打开目标文件
    if(desFile == NULL)
    {
        printf("Destination file open failure!!");
        return 0;
    }
      /* start copy */
    while(!feof(srcFile))// 判断当前指针的指向是否为EOF
    {
        putc(getc(srcFile),desFile);
    }

    fclose(srcFile);
    fclose(desFile);

    return 0;
}
时间: 2024-08-26 11:03:49

文件复制命令CP 的简单实现的相关文章

在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法。(转)

在linux下的使用复制命令cp,不让出现"overwrite"(文件覆盖)提示的方法. 一般我们在使用cp命令时加上-f选项,希望不让出现"overwrite"的提示(文件覆盖的提示).如:# cp -rf sourcefile targetdir 或#cp -r -f sourcefile targetdir-r的意思是递归复制,也就是复制文件夹及其下所有文件.-f的意思是遇到同名的文件时不提示,直接覆盖. 但是为什么加上-f了,还出现"overwri

linux基本命令之复制命令cp

cp命令是在linux中用来复制文件或者目录最常用的命令之一.cp命令的功能很强大,也有很多的用法. cp命令: cp - copy files and directories 语法: cp [OPTION]... [-T] SOURCE    DESTS cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY   SOURCE... 选项: -a, --archive same as -dR --preserve=all 效

Linux复制命令:cp、移动命令:mv

1.把A目录下的zhidao.txt文件复制到根目录下的B[[email protected] test]# sudo cp /A/zhidao.txt  /B 2.把A目录下的C目录复制到根目录下的B[[email protected] test]# sudo cp -R /A/C  /B#-R参数,递归操作,把C目录下所以文件全部复制过去 3.把A目录下的zhidao.txt文件移动到根目录下的B[[email protected] test]# sudo mv /A/zhidao.txt 

linux命令 - 复制命令 cp

cp 选项 [原文件或目录][目标目录] 英文原意:copy -r 复制目录 -p 连带文件属性复制 -d 若原文件是连接文件则复制连接属性 -a 相当于-pdr 例如: [email protected]:~$ ls aaa japan [email protected]:~$ cp aaa /tmp/bbb [email protected]:~$ ls /tmp bbb systemd-private-389178f43f8842f1b14b9b1c5243610d-systemd-tim

find——文件查找命令 linux一些常用命令

find 命令eg: 一般文件查找方法: 1.  find /home -name file  ,  在/home目录下查找文件名为file的文件2.  find /home -name '*file*'  ,  在/home目录下查找文件名包含file的文件3.  find /home -name 'file*'  ,  在/home目录下查找以file开头的文件名的文件4.  find /home -size 512c  ,    在/home目录下查找512kb大小的文件5.  find

Linux 常见命令 --文件处理命令

使用 Ctrl+L进行清屏 快捷键 Linux 当中一切皆文件,目录也是文件,我们称之为目录文件,目录文件和普通文件有区别,普通文件是用来保存数据的,而目录是用来保存文件的,目录的概念就是windows中的文件夹的概念 (1)目录处理命名 1.  建立目录: mkdir(make directories) mkdir -p[目录名]   -p  递归创建 2. 切换目录(change directory)  pwd 显示  当前所在的目录 简化操作: cd ~  : 进入当前用户的家目录 cd

Linux学习--目录及文件处理命令

Linux中命令的格式为 命令 [-选项] [-参数]  多个选项可以写在一起. 一.创建目录命令 mkdir --make directories 1.普通创建 语法:mkdir [目录名] 如,在/tmp 下创建一个目录 ,命令如下: mkdir /tmp/hehe 2.递归创建目录 语法:mkdir -p [目录名] 此时,若要在本身不存在的目录下再次创建一个子目录的话,上述命令就不能用了.在这种情况下,需要用到一个参数 mkdir -p,命令如下: mkdir -p /tmp/lala/

java中的IO流之文件复制

O(∩_∩)O哈哈~ 1.综述 一门成熟的语言肯定具备的几个模块:IO,通信,线程,UI...... Java作为一门成熟的程序语言,其IO流是比较复杂的.上个图大家感受下: 简单分析一下,IO分为两种流:字符流和字节流.字符流的父类Reader(读取到内存)和Writer(从内存输出),字节流的父类InputStream(读取到内存)和OutputStream(从内存输出),然后为了方便各种操作,比如为了文件操作,派生了文件流:为了对象操作,派生了对象流:等等.当初我也是傻傻分不清到底是Inp

linux cp命令参数及用法详解---linux 复制文件命令cp

linux cp命令参数及用法详解---linux 复制文件命令cp [[email protected]Linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)[[email protected]linux ~]# cp [options] source1 source2 source3 -. directory参数:-a :相当于 -pdr 的意思:-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身:-