三种IO库实现文件的拷贝
2017-10-23 13:26
399 查看
read()write()实现文件copy
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#define MAX 128
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too few arguments\n");
return 0;
}
int fdread,fdwrite;
if((fdread=open(argv[1],O_RDONLY))<0)
{
perror("cannot open file");
return 0;
}
if((fdwrite=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0664))<0)
{
perror("too few arguments");
return 0;
}
char buf[MAX];
int len;
int count=0;
while((len=read(fdread,buf,MAX))>0)
{
count+=len;
write(fdwrite,buf,len);
}
printf("%d\n",count);
close(fdread);
close(fdwrite);
return 0;
}
gets()puts()实现文件拷贝
#include<stdio.h>
#include<string.h>
#define MAXSIZE 32
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too lew argument\n");
return 0;
}
FILE *fpread ,*fpwrite;
if((fpread=fopen(argv[1],"r"))==NULL)
{
perror("cannot open file1");
return 0;
}
char str[MAXSIZE];
if((fpwrite=fopen(argv[2],"w"))==NULL)
{
perror("cannot open file2");
return 0;
}
while(fgets(str,MAXSIZE,fpread)!=NULL)
{
fputs(str,fpwrite);
}
fclose(fpread);
fclose(fpwrite);
return 0;
}
fread()fwrite()实现文件copy
#include<stdio.h>
#define MAX 64
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too few arguments\n");
return 0;
}
FILE *fpread,*fpwrite;
char str[MAX];
int n;
if((fpread=fopen(argv[1],"r"))==NULL)
{
perror("cannot open file");
return 0;
}
if((fpwrite=fopen(argv[2],"w"))==NULL)
{
perror("cannot open file");
return 0;
}
while((n=fread(str,1,MAX,fpread))>0)
{
fwrite(str,1,n,fpwrite);
}
fclose(fpread);
fclose(fpwrite);
return 0;
}
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#define MAX 128
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too few arguments\n");
return 0;
}
int fdread,fdwrite;
if((fdread=open(argv[1],O_RDONLY))<0)
{
perror("cannot open file");
return 0;
}
if((fdwrite=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0664))<0)
{
perror("too few arguments");
return 0;
}
char buf[MAX];
int len;
int count=0;
while((len=read(fdread,buf,MAX))>0)
{
count+=len;
write(fdwrite,buf,len);
}
printf("%d\n",count);
close(fdread);
close(fdwrite);
return 0;
}
gets()puts()实现文件拷贝
#include<stdio.h>
#include<string.h>
#define MAXSIZE 32
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too lew argument\n");
return 0;
}
FILE *fpread ,*fpwrite;
if((fpread=fopen(argv[1],"r"))==NULL)
{
perror("cannot open file1");
return 0;
}
char str[MAXSIZE];
if((fpwrite=fopen(argv[2],"w"))==NULL)
{
perror("cannot open file2");
return 0;
}
while(fgets(str,MAXSIZE,fpread)!=NULL)
{
fputs(str,fpwrite);
}
fclose(fpread);
fclose(fpwrite);
return 0;
}
fread()fwrite()实现文件copy
#include<stdio.h>
#define MAX 64
int main(int argc, const char *argv[])
{
if(argc<3)
{
printf("too few arguments\n");
return 0;
}
FILE *fpread,*fpwrite;
char str[MAX];
int n;
if((fpread=fopen(argv[1],"r"))==NULL)
{
perror("cannot open file");
return 0;
}
if((fpwrite=fopen(argv[2],"w"))==NULL)
{
perror("cannot open file");
return 0;
}
while((n=fread(str,1,MAX,fpread))>0)
{
fwrite(str,1,n,fpwrite);
}
fclose(fpread);
fclose(fpwrite);
return 0;
}
相关文章推荐
- Delphi中实现文件拷贝的三种方法
- Delphi中实现文件拷贝的三种方法 (收藏)
- Delphi中实现文件拷贝的三种方法
- Java---三种文件拷贝的实现方法
- Delphi中实现文件拷贝的三种方法
- Delphi中实现文件拷贝的三种方法
- Delphi中实现文件拷贝的三种方法
- Delphi中实现文件拷贝的三种方法
- Delphi中实现文件拷贝的三种方法
- c++实现文件拷贝,不用system函数
- Openwrt实现免密码ssh登录服务器,免密码拷贝文件
- 用命名管道实现局域网上两台主机间的文件拷贝
- IO流——实现一个文件拷贝的功能
- 常见的实现文件拷贝的两种方法
- Java中实现文件上传下载的三种解决方案
- windows与linux系统互相拷贝文件借助PSCP命令实现
- 怎样在PB中实现文件的拷贝与删除
- 使用Bash Shell对目录中的文件实现递归式拷贝
- Linux(CentOS)挂载移动硬盘,实现文件拷贝、备份
- 用c语言实现文件拷贝