网上看到的,实测可用!
int CopyFile(char *sfn, char *ofn, bool flag)
{
int sfd,ofd;
struct stat statbf;
sfd=open(sfn,O_RDONLY);
if(sfd==-1){
fprintf(stderr,"open file error on %s\n",sfn);
return 0;
}
fstat(sfd,&statbf);
ofd=open(ofn,O_WRONLY|O_CREAT,statbf.st_mode);
if(ofd==-1){
fprintf(stderr,"open file error on %s\n",ofn);
return 0;
}
sendfile(ofd,sfd,0,statbf.st_size);
close(sfd);
close(ofd);
return 1;
}
本文分享了一个使用C语言实现的文件复制函数,通过sendfile系统调用进行高效的数据传输。该函数首先打开源文件和目标文件,然后利用fstat获取源文件的属性,接着创建目标文件并设置相同的权限,最后完成文件内容的复制。
403

被折叠的 条评论
为什么被折叠?



