【问题标题】:Why doesn't tee use tee为什么 tee 不使用 tee
【发布时间】:2018-06-04 01:24:40
【问题描述】:

有一个 gnu coreutils 程序“tee”和一个 linux(/libc?) 系统调用“tee”。程序 tee 不调用 tee。相反,它先“读取”,然后“写入”(当然是多次)。

为什么 tee 不使用 tee?我认为这是为了性能或便携性,但我找不到答案。

后续问题,为什么它是 'read' 和 'fwrite',而不是 'read'/'write' 或 'fread'/'fwrite'?

【问题讨论】:

  • tee(1) 命令存在于tee(2) syscall 之前。为什么现在改呢?
  • 我在猜测,但是对于 tee 所做的事情,输入缓冲会妨碍,但输出缓冲仍然是有益的。
  • GNU tee 可以在任何类 Unix 操作系统下工作。我认为 tee 系统调用仅适用于 Linux。

标签: linux system-calls gnu-coreutils


【解决方案1】:

tee(2) 仅适用于管道之间。 tee(1) 需要在常规文件之间工作,如tee file2 < file1 > file3

更多详情请见man 2 tee

【讨论】:

  • 啊!我对 splice 感到困惑,它只需要 1 fd 作为管道。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 2020-10-25
  • 2018-03-25
  • 1970-01-01
相关资源
最近更新 更多