c语言文件复制与显示,C语言 简单的文件复制

近来寂寞难耐,无心学习,内心空虚不已,樯橹之余,感慨虚度时光,遂找一代码学习。

C语言实现一个简单的文件复制功能,Linux环境下。

思路步骤:(下代码最重要的逻辑步骤清晰)

第一步:打开源文件(要复制的文件),打开文件的方式以读的方式就可以了。

Linux C打开文件的库函数有:int open(const char *pathname,int flags),int

open(const char *pathname,mode_t mode),以及 FILE *fopen(const char

*path,const char *mode),FILE *fdopen(int fd,const char

*mode),这几个函数,具体的使用方法就查看manual就可以了。

第二步:创建目标文件,所用的函数也是上面那几个。

第三步:读取文件。库函数有:size_t read(int fd,void *buf,size_t count),

size_t fread(void *ptr,size_t size,size_t nmemb,FILE

*stream)

第三步:写入目标文件。用的库函数:size_t write(int fd,void *buf,size_t

count),

size_t fwrite(void *ptr,size_t size,size_t

nmemb,FILE *stream)

第四步:关闭文件。库函数:int fclose(FILE *fp) ,int close(int fd)

思路步骤就是这样子的了。下面是具体的代码实现。

#include

#include

#include

#include

#include

#include

int main(int argc,char *argv[])

{

int fd_source_file,fd_copy_file;//用接受int open()函数返回的值

//FILE *fp_source_file,*fp_copy_file;//如果用FILE *fopen()函数的话

int

size_read,size_write;

char buf[1024];

char copy_file_name[50];

//检查参数的输入

if(argc<3)

{

printf("usage: ./a.out source_file_path copy_file_path\n");

exit(1);

}

//复制目标文件名

strcpy(copy_file_name,argv[2]);

//打开源文件

if(

(fd_source_file=open(argv[1],O_RDONLY,00744))<0

)

{

perror("open source file error");

exit(1);

}

//创建目标文件

if(

(fd_copy_file=open(argv[1],O_CREAT|O_RDWR)) <0 )

{

perror("create

copy file error");

exit(1);

}

do

{

//读取文件内容

if( (size_read=read(fd_source_file,buf,1024))

<0 )

{

perror("read source file error");

exit(1);

}

//写入目标文件

if(

(size_write=write(fd_copy_file,buf,sieze_read))<0

)

{

perror("wrire file error");

exit(1);

}

}while(size_read==1024)

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值