我对管道的理解是,所有管道命令都是并行调用的,每个命令的标准输出都会作为标准输入馈送到下一个命令。处理大型文件时,数据的初始部分可能已处理完毕,而某些部分数据仍处于管道的早期阶段。这是正确描述所发生情况的吗?
那么,当使用需要一次性输入所有数据的命令(例如 sort)而不是逐行处理时会发生什么?它会以小块的形式工作并将其传递下去,还是会等到上一个命令完成所有数据的传递?如果它确实等待,那么等待的数据如何处理?它存储在 RAM 中吗?管道对数据大小有上限吗?
我对管道的理解是,所有管道命令都是并行调用的,每个命令的标准输出都会作为标准输入馈送到下一个命令。处理大型文件时,数据的初始部分可能已处理完毕,而某些部分数据仍处于管道的早期阶段。这是正确描述所发生情况的吗?
那么,当使用需要一次性输入所有数据的命令(例如 sort)而不是逐行处理时会发生什么?它会以小块的形式工作并将其传递下去,还是会等到上一个命令完成所有数据的传递?如果它确实等待,那么等待的数据如何处理?它存储在 RAM 中吗?管道对数据大小有上限吗?