代码之家  ›  专栏  ›  技术社区  ›  Daniel Trebbien

哪些文件系统支持通过Linux的拼接(2)进行拼接?

  •  18
  • Daniel Trebbien  · 技术社区  · 14 年前

    man page for the splice system call 他说 可能会失败并设置 errno EINVAL 如果:

    目标文件系统不支持拼接;两个描述符都不引用管道;或者为不可查找的设备指定偏移量

    哪些文件系统支持拼接?

    2 回复  |  直到 14 年前
        1
  •  15
  •   Bolo    14 年前

    我原来的回答有部分错误,这是一个重大的重写。

    Linux 2.6.30.10及更低版本

    splice EINVAL 当源或目标文件系统不支持拼接时。这是你的名字 支持拼接的文件系统 :

    • 在写入模式下 :exofs、ext2、ext3、ext4、jfs、ocfs2、reiserfs、ubifs。

    细节如下。中确定的拼接支撑 do_splice_to() do_splice_from() 函数在“管道到文件”的情况下。通过检查相关的 struct file_operations 包含 .splice_read .splice_write fs/*/file.c .u读取 .u写入

    从Linux 2.6.31开始, 所有文件系统都支持读写模式下的拼接 .

    细节如下。当文件系统没有 .u读取 .u写入 结构文件\u操作 ,使用回退功能: default_file_splice_read default_file_splice_write 分别是。看到了吗 do_splice_to() do_splice_from() 艾因瓦尔 由于文件中列出的其他原因,可能仍会被退回。

        2
  •  0
  •   Community T.Woody    7 年前