柳州网站建设22,阿里企业邮箱免费注册,牡丹江做网站公司,买房网站怎么做完全复制一个文件的内容到另外一个文件
思路解析#xff1a;
首先我这里使用了三个.c文件#xff0c;分别是#xff1a;yanyu.c、yanyu_old.c、yanyu_now.c 其中yanyu.c负责将yanyu_old.c中的内容读入到buff缓冲区中#xff0c;然后再从buff缓冲区中将数据写入到yanyu_no…完全复制一个文件的内容到另外一个文件
思路解析
首先我这里使用了三个.c文件分别是yanyu.c、yanyu_old.c、yanyu_now.c 其中yanyu.c负责将yanyu_old.c中的内容读入到buff缓冲区中然后再从buff缓冲区中将数据写入到yanyu_now.c中最终实现将yanyu_old.c中的内容复制到yanyu_now.c中。
具体实现如下
首先将yanyu_old.c、yanyu_now.c两个文件分别打开然后分别获取这两个文件的文件描述符。 再通过将yanyu_old.c中的内容通过read函数读入到buff缓冲区中 之后判断read返回的读入缓冲区实际的字节数如果实际的字节数等于零则表示读入完成最后再依次通过write函数以此写入到yanyu_now.c文件中。最终首先复制的效果。
完整代码如下
yanyu.c
#include sys/stat.h
#include sys/types.h
#include fcntl.h
#include unistd.h
#include stdio.h
#include string.h
int main (){int fd_old open(./yanyu_old.c,O_RDWR);//打开文件获取其文件描述符int fd_now open(./yanyu_now.c,O_RDWR);//打开文件获取其文件描述符if(fd_old 0 || fd_now 0){//如果其文件描述符为负则打开失败perror(open);return -1;}printf(open seccessful\n);//否则输出提示打开成功信息char buff[100]{0};//定义一个字符数据充当缓冲区int write_buff_to_now;//用于接收从buff写入yanyunow.c中的字符数据大小int read_buff read(fd_old,buff,sizeof(buff));//获取从yanyu_old.c读入buff中的实际值while(read_buff ! 0){//如果读入的实际字符不为零执行写入操作if(read_buff 0 ){perror(read);return -1;}write_buff_to_now write(fd_now,buff,read_buff);//从buff写入到yanyunow.c中read_buff read(fd_old,buff,sizeof(buff));//再依此从yanyuold.c中将字符读入到buff中if(write_buff_to_now 0 ){//写入失败perror(write);return -1;} }int close_old close(fd_old);//一开始打开了文件使用完成之后需要关闭文件int close_now close(fd_now);//一开始打开了文件使用完成之后需要关闭文件if(close_old 0 || close_now 0){//关闭文件失败提示错误信息并结束perror(close);return -1;}printf(close successful\n);//成功关闭文件return 0;
}yanyu_old.c
随便写就行反正最后会通过执行yanyu.c文件将这里的内容全部复制到yanyu_now.c里面的yanyu_now.c
//这里为空啥也不需要到时候执行yanyu.c之后会将yanyu_old.c里面的内容给复制过来。运行之前 yanyu_old.c yanyu_now.c 运行之后 yanyu_now.c