【问题标题】:Effective way to copy file in linux using C++?使用 C++ 在 linux 中复制文件的有效方法?
【发布时间】:2017-11-14 15:30:17
【问题描述】:

如何使用 C++ 在 linux 中高效地复制文件? 是否有任何系统调用/标准库允许文件复制而不产生循环?

【问题讨论】:

  • en.cppreference.com/w/cpp/filesystem/copy - 5s google 搜索能带给你的东西真是太疯狂了!
  • 请花点时间阅读导览,了解网站内容,然后再重新提交您的问题:stackoverflow.com/tour
  • 最好的方法是使用Linux API。但是,为了复制文件,必须执行循环,没有循环就无法逃脱。

标签: c++


【解决方案1】:

假设 argv[1] 是文件名 source 而 argv[2] 是文件名 dest:

#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <unistd.h>

int wid;
if(fork() == 0) {
    execve("/bin/cp", &argv[1], NULL);
    exit(-1);
}
wait(&wid);

它的作用是 fork 程序并在子程序中执行 cp 二进制文件 有关所用函数的更多信息:

man 2 fork
man 2 execve
man 2 wait

【讨论】:

  • 请不要回答此类问题。你让其他像这样的懒惰问题更有可能被问到。
  • 对不起,只是想帮忙
  • 没关系,现在你知道了 :) 通常最好将他们指向游览的方向 (stackoverflow.com/tour)
  • 答案真的比使用 std::filesystem::copy 更好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多