C语言复制文件主要由三种办法,你可以根据自己的知识选用一个
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了闽侯免费建站欢迎大家使用!
方法1)利用C语言的二进制读写函数
自己用fopen打开源文件和目标文件,然后用循环读写实现复制
方法2)利用操作系统的文件复制函数
例如Windows就有如下API函数可以复制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
);
第一个参数是用来存放当前要处理文件的路径。
第二个参数是用来存放用户指定的新路径。
第三个参数它是用来判断用户指定的新路径是否已经存在要存放的路径,如果为TRUE,则新路径中已经存在该文件了,该函数调用失败,否则就调用成功。
方法3:C语言调用操作系统的copy命令
首先#includestdlib.h
然后 程序中 调用 system(“这里写 copy的完整命令”);
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(argc3)
{
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;
}
1、首先需要建立一个新的文件,输入头文件和主函数。
2、接下来需要定义变量类型。
3、设置完变量类型之后开始调用cpy函数。
4、接下来需要定义一个函数,并定义变量类型。
5、最后加一个字符串结束符,并在主函数中输出。
6、编译。运行,可以看到字符串a复制到字符串b中。
是strcpy吧
原型声明:extern char *strcpy(char dest[],const char *src);
头文件:#include string.h
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针
#include stdio.h
#include string.h
int main(void)
{
char str1[10];
char str2[]="Hello,Word";
strcpy(str1,str2);//把str2复制到str1,大意是:str1=str2//但是这样写在C语言是错的
printf("str1=%s\n",str1);
return 0;
}