精华内容
下载资源
问答
  • Linux下C语言文件拷贝

    2021-01-24 18:09:58
    Linux下C语言文件拷贝 代码 #include <stdio.h> #include <unistd.h> #include <string.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <...

    Linux下C语言文件拷贝

    代码

    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <errno.h>
    
    #define BUFFSIZE 4096		//64位机BUFFSIZE磁盘长度  st_blsize = 4096字节
    
    int main(int argc, char * argv[])
    {
            int srcfd = -1;
            int srcrv = -1;
    
            int detwv = -1;
            char buf[BUFFSIZE];
            unsigned int detfilesize = 0;
    
            srcfd = open("srcfile.txt", O_RDONLY, 0666);
    
            if(srcfd < 0)
            {
                    perror("open srcfile error");
                    return 0;
            }
    
            printf("open srcfile success srcfd: %d\n", srcfd);
    
            detfd = open("detfile.txt", O_RDWR | O_TRUNC | O_CREAT, 0666);
    
            if(detfd < 0)
            {
                    perror("open detfile error");
                    return 0;
            }
    
            printf("open detfile success detfd: %d\n", detfd);
    
            do
            {
                    srcrv = read(srcfd, buf, BUFFSIZE);     //读源文件到buf
                    if(srcrv < 0)
                    {
                            printf("read error:%s\n", strerror(errno));
                            goto cleanup;
                    }
    
                    //memset(buf, 0, wv);
    
                    detwv = write(detfd, buf, srcrv);               //写buf到目的文>if(detwv != srcrv)              //read 读到文尾返回0
                    {
                            printf("read error:%s\n", strerror(errno));
                            goto cleanup;
                    }
    
            }while(srcrv > 0);
    
            printf("srcrv = %d  detwv = %d \n", srcrv, detwv);
            detfilesize = lseek(detfd, 0, SEEK_END);
            printf("detfile size: %u\n", detfilesize);
    
    cleanup:
            close(detfd);
            close(srcfd);
    
            return 0;
    }
    

    运行结果:

    tianyujie@icloud-1st:~$ ./a.out
    open srcfile success srcfd: 3
    open detfile success detfd: 4
    srcrv = 0  detwv = 0 
    detfile size: 18594166
    
    tianyujie@icloud-1st:~$ ls -l
    -rw-rw-r-- 1 tianyujie tianyujie 18594166 Jan 24 18:06 detfile.txt
    -rw-r--r-- 1 tianyujie tianyujie 18594166 Jan 24 13:38 srcfile.txt
    
    展开全文
  • Linux下C语言实现文件拷贝

    热门讨论 2012-10-09 09:41:55
    在Linux下用C语言实现文件拷贝代码
  • C语言代码实现 #include "stdio.h" #include "stdlib.h" #define EXIT_FALIURE 1 #define EXIT_SUCCESS 0 int main(int argc, char *argv[]) { FILE *srcFd = NULL; FILE *dstFd = NULL; char ch; /* ...

    C语言版

    代码实现

    #include "stdio.h"
    #include "stdlib.h"
    
    #define EXIT_FALIURE 1
    #define EXIT_SUCCESS 0
    
    int main(int argc, char *argv[])
    {
        FILE *srcFd = NULL;
        FILE *dstFd = NULL;
        char ch;
        
        /* 不是三个参数直接退出 */
        /* example: cp src dst */
        if (argc != 3) {
            printf( "format: copy srcfile dstfile.\n");
            exit(EXIT_FALIURE);
        }
    	
    	/* 打开源文件 */
        srcFd = fopen(argv[1], "r");
        if (srcFd == NULL) {
            fprintf("open %s fail.\n", argv[1]);
            fclose(srcFd);
            exit(EXIT_FALIURE);
        }
        
    	/* 打开拷贝目的地文件 */
        dstFd = fopen(argv[2], "w+");
        if (dstFd == NULL) {
            printf("open %s fail.\n", argv[2]);
            fclose(dstFd);
            exit(EXIT_FALIURE);
        }
    	
    	/* 从源文件取一个字符,不是结束符就拷贝到目的文件 */
        while ((ch = getc(srcFd)) != EOF) {
            putc(ch, dstFd);
        }
        putc("\n", dstFd);
        printf("copy done.\n");
        fclose(srcFd);
        fclose(dstFd);
        return 0;
    }
    

    编译

    在这里插入图片描述
    这里使用gcc编译出cp可执行程序。

    测试

    在这里插入图片描述
    直接用echo创建一个文件,内容是123
    在这里插入图片描述
    然后再拷贝一下,可以看到目标文件是已经拷贝成功了。

    展开全文
  • c语言图片拷贝

    2020-11-08 11:06:17
    以下代码文件一的图片复制到文件二中 #include<stdio.h> #include<stdlib.h> int main() { char ch; char fname0[50]="D:\\picture\\ciyun.png";//文件一的名字 char fname1[50]="D:\\picture\\...

    刚才在博客园看到的已经404挂了,用百度快照还能看到,赶紧抢救一下,给自己用
    以下代码将文件一的图片复制到文件二中

    #include<stdio.h>
    
    #include<stdlib.h>
    
    int main()
    {
    	char ch;
    	char fname0[50]="D:\\picture\\ciyun.png";//文件一的名字 
    	char fname1[50]="D:\\picture\\ha1.png"; //文件二的名字 
    	FILE *p1,*p2;//定义两个文件类型的指针
    	
    	if((p1=fopen(fname0,"rb"))==NULL)/*fopen用rb(二进制读取) 的方式打开文件 
    		若能够正确打开文件,则将用指针p1指向该文件,若不能正确打开,则返回空指针
    		即,将p1指向一个空指针。*/ 
    		{
    			printf("文件1打开发生错误!");
    			exit(0); //exit(0)函数可以终止程序,头文件为#include<stdlib.h >
    		}
    		
    	if((p2=fopen(fname1,"wb+"))==NULL)//同上 ,但以wb+(二进制写入)方式打开文件 
    		{
    			printf("文件2打开发生错误!");
    			exit(0); 
    		}
    	while(!feof(p1))/*feof(p1)判断指针p1是否到达p1所指文件结尾,
    					即判断文件p1是否到达结束状态 ,若到达结束状态则返回值1(真),反之,返回值为0(假)*/ 
    	{
    		ch=fgetc(p1);//在一个p1所指文件中读取一个字符并且将指针指向下一个字符 
    		fputc(ch,p2);//将ch字符储存在文件p2,并将指针下移 
    	}
    	fclose(p1);//关闭文件 
    	fclose(p2);
     } 
    
    展开全文
  • C语言文件拷贝(块读写) 代码如下,可自行设置传输指针空间大小,修改宏定义SIZE值即可,其余的看注释,底部附执行流程图与拷贝后文件对比。 #include "stdio.h" #include "stdlib.h" #include "string.h" #...

    【C语言】文件拷贝(块读写)


    代码如下,可自行设置传输指针空间大小,修改宏定义SIZE值即可,其余的看注释,底部附执行流程图与拷贝后文件对比。


    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    #include "sys/types.h"
    #include "sys/stat.h"
    #define SIZE (1024 * 1024)    //拷贝指针容量1M
    
    int main(int argc, char *argv[]) {
    
        //参数提醒
        if (argc < 3) {
            printf("Missing radix parameter!\n");
            return -1;
        }
    
    	//文件属性结构体
        struct stat *st;
    
        //文件指针(获取argv[]命令作为文件路径)
        FILE *sour = fopen(argv[1], "r");
        FILE *dest = fopen(argv[2], "w");
    
        //printf("File Size:%ldByte\n", st->st_size);
    
        //判空
        if (!sour || !dest) {
            printf("Copy file failed!\n");
            return -2;
        }
    
        //开辟拷贝暂存指针空间
        char *p = NULL;
    
        //保证小文件拷贝时开辟具体空间大小
        long size = 0;
        
        //记录文件属性
        stat(argv[1], st);
    
        //开辟空间
        if (st->st_size > SIZE) {
            
            p = (char*)malloc(sizeof(char) * SIZE);
            size = SIZE;
    
        } else {
            
            p = (char*)malloc(sizeof(char) * st->st_size + 10);
            size = st->st_size + 10;
        }
    
        //fread()函数成功会返回有效字符个数,用i来记录
        long count = 0;
    
        //开始拷贝
        while (!feof(sour)) {
            //指针空间置空
            memset(p, 0, size);
    
            //读写(块)
            count = fread(p, sizeof(char), size, sour);
            fwrite(p, sizeof(char), count, dest);
        }
    
        //成功提醒
        printf("Copy files successfully!\n");
    
        //释放空间,关闭文件
        free(p);
        fclose(sour);
        fclose(dest);
        return 0;
    }
    

    执行图:

    在这里插入图片描述


    对比图:

    在这里插入图片描述

    展开全文
  • c语言——大文件拷贝

    2020-05-11 00:38:01
    c语言——大文件拷贝 按【字符】读取复制 本文代码在deepin(Linux系统)下编译与测试 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include<sys/...
  • #include <stdio.h> #include <malloc.h> int main(void) { //对文件进行操作需先打开文件 即让程序和文件建立连接 FILE* fpread = fopen... //只写 二进制文件 将test.jpg拷贝到img.jpg if(fpread=.
  • 在Linux下用c语言实现拷贝功能

    千次阅读 2018-03-13 18:59:02
    在Linux下用c语言实现拷贝命令需要对c语言中的文件掌握,实现拷贝功能原理是将文件的二进制编码使用fread和fwrite,将源文件二进制编码全部读入,然后动态申请足够的内存,将读入的二进制编码用fwrite写入目标文件。...
  • ``` #include #pragma warning(disable:4996) ...为什么用上面fgets和fputs拷贝一个视频文件,300多兆的视频只能拷贝80多兆,而用fgets、fputs与fread、fwrite都能够完全拷贝下来。上面代码哪错了吗?
  • 废话不多说了,直接上代码,请高手多多指点: #include #define DIRLEN 100 #define BUFFERLEN 1024 int main(void) { FILE *src_fp = NULL; FILE *dst_fp = NULL; char src_path[DIRLEN] = {0}; char dst_...
  • C语言文件复制实例详解 文件复制,在Linux中,将生成的read.o 重新文件拷贝一份复制到ReadCopy.o中,并且更改ReadCopy.o文件的操作权限。使其能够正常运行。 实例代码: #include int main(){ FILE *r_file = ...
  • C/C++文件拷贝代码实现

    千次阅读 2019-08-05 20:12:19
    C语言 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> bool copyfile(const char *filename, const char * fileout); int main() { char filename[256]; char fileout[256]; printf("请输入读取的....
  • //文本文件拷贝 void TxtFileCopy(FILE* des, FILE* arc) { assert(arc != NULL);//添加断言==if(arc==NULL) printf("源文件不存在,无法读取"); while (1) { char ch = fgetc(arc); if (ch == EOF) break
  • c语言文件实例.rar

    2020-07-01 13:08:38
    ps:老师布置的作业。这里的源代码在我博文里有免费的。这里面是源程序,多了我运行...3、实现文本文件拷贝程序 4、实现文本文件合并程序,在命令行界面输入多个文件名,然后把后面的所有文件合并到第一个文件的程序。
  • 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run->Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一...
  • C语言实现文件拷贝 用到系统函数open,read,write,close
  • cp 拷贝命令 #include //linux文件指令cp的模拟实现 #include #include #include #define BUFFERSIZE 4096 #define COPYMOOE 0644 void oops(char *, char *); int main(int argc, char *argv[]) { int in_fd, ...
  • linux下cp -r --parents为回溯的拷贝文件夹,同时复制时保留文件的目录结构。下面用posix标准的C语言来实现它。  filetype函数用来检测指定目录下面的文件是否存在,如果存在的话,是那种类型的文件。函数返回'n'...
  • C语言文件操作

    2019-06-16 00:29:36
    其他操作实现文件拷贝功能代码文件操作演示代码其他演示 文件操作 文件打开:fopen() FILE * fopen(const char* _Filename, const char* _Mode); 参数: _Filename:需要打开的文件名,字符串 _Mode:文件打开模式....
  • 网上已经有很多代码,本来打算理解一下别人的代码拷贝过来执行就可以了,但是找了两个博客的代码,执行都报错了,于是就研究了一下mmap实现多线程拷贝,参考了...我的代码有些不精简,...
  • //打开文件// if((fp=fopen("D:\\c语言大作业\\书籍.txt","wb"))==NULL) { printf("打开文件失败!\n"); Sleep(3000);//让输出的话停留三秒钟在清屏 exit(0); } else//循环把链表中的东西写到文件里 { struct ...
  • 下载后得到cJSONFiles.zip,将该文件拷贝到ubuntu虚拟机下,解压后观察文件,主要有cJSON.c 和cJSON.h,还有一个test.c测试文件。 参考test.c测试代码,实现testReadJson.c,主要功能是读取test.json配置文件,并将...
  • 潜艇大战游戏 ...主程序文件是ship.c,调试环境为TC2.0或者TC3.0。运行这个程序需要tc提供的几个头文件。建议修改options菜单中的include目录项到tc的include的目录下;或者把源程序拷贝到tc目录下运行。
  • :第一个依赖文件-c:输出目标代码,不输出可执行文件-g:编译器编译的时候提供以后对程序调试的信息target:rules gcc -o $@ $^install: cp target /usr/local/binclean: rm target lib库查找方法:nm -o /lib/*.so ...
  • C语言写的一个程序,当U盘连接电脑后自动将U盘里面的文件复制到你指定的文件夹,可以在后台隐藏运行。
  • 测试代码由makefile进行管理 将整个文件夹拷贝到Linux目录下,使用gcc编译 编译运行步骤: 1、在本文件夹目录下使用Linux命令行输入 make 进行编译链接生成可执行文件HashCalc 2. 命令行下输入 ./HashCalc 执行程序...
  • 简介:源码操作说明:源代码使用方法是(以实例1为例):将该实例的源码,比如实例1的1.c文件(可以在001目录下找到),拷贝到tc编译器目录下,运行tc.exe,打开编译器,按【F3】键或者“File->Open”菜单命令,打开1....
  • 以下内容为详细代码 #include <unistd.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> int main(int argc, ...
  • 1、利用C语言函数fopen(), fread(), fwrite(), fclose() 来实现简单的文件备份, 即将一个文件的内容拷贝到另一个文件中去。 2、利用Linux操作系统的系统调用函数open(), read(), write(), close() 来实现简单的文件...
  • C语言实例解析精粹源代码

    热门讨论 2009-09-20 03:39:01
    拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run->Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 421
精华内容 168
热门标签
关键字:

c语言文件拷贝代码

c语言 订阅