我搜索一个复制文件(二进制或文本)的好方法.我写过几个样本,每个人都在工作.但我想听听经验丰富的程序员的意见.
我错过了很好的例子并搜索了一种适用于C++的方法.
ANSI-C-WAY
#include <iostream>
#include <cstdio> // fopen, fclose, fread, fwrite, BUFSIZ
#include <ctime>
using namespace std;
int main() {
clock_t start, end;
start = clock();
// BUFSIZE default is 8192 bytes
// BUFSIZE of 1 means one chareter at time
// good values should fit to blocksize, like 1024 or 4096
// higher values reduce number of system calls
// size_t BUFFER_SIZE = 4096;
char buf[BUFSIZ];
size_t size;
FILE* source = fopen("from.ogv", "rb");
FILE* dest = fopen("to.ogv", "wb"); …Run Code Online (Sandbox Code Playgroud) 我正在一个独立于操作系统的文件管理器,我正在寻找最有效的方法来复制Linux文件.Windows有一个内置函数CopyFileEx(),但是从我注意到的,Linux没有这样的标准函数.所以我想我必须实现自己的.显而易见的方法是fopen/fread/fwrite,但有更好(更快)的方法吗?我还必须能够偶尔停止每一次,以便我可以更新文件进度菜单的"复制到目前为止"计数.