【问题标题】:Is there no linux system call or glibc function that copies files? [closed]没有复制文件的linux系统调用或glibc函数吗? [关闭]
【发布时间】:2016-07-15 05:45:32
【问题描述】:

对于复制文件,没有Linux系统调用吗? GNU C 库中也没有函数吗?那么基于 Linux 系统调用或 GNU C 库的复制文件是如何实现的呢?谢谢。

【问题讨论】:

  • 根本没有研究工作。它是开源的。阅读“cp”源代码。
  • IMO 这是一个有效的问题,当然不是题外话。它不是“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题”。另外,@Employed_Russian 给出的答案是对这个问题的一个很好的回答。

标签: linux system-calls glibc


【解决方案1】:

复制文件,没有Linux系统调用吗?

没有。一个是不必要的,如果它存在的话会适得其反。想想在复制操作中可能发生的所有可能的错误情况,以及应该做出什么适当的响应。

GNU C 库中没有函数吗?

这是一个太琐碎的函数,无法在 C 库中使用和包含(当没有错误时),并且太复杂而无法在有 错误时普遍使用。指定发生错误时应该发生什么最好留给应用程序,因为只有应用程序知道真正应该发生什么。

那么基于Linux系统调用或GNU C库的复制文件是如何实现的呢?

使用readwrite 系统调用。

【讨论】:

  • strlen() 更琐碎,却包含在内。
  • @smoku strlen 非常远非微不足道(如果您希望它更快的话)。
  • 与虚伪的fcopy() 完全一样“微不足道” - 当“如果你想要它......”时会中断。使观点更加有力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多