gpt4 book ai didi

c - 识别程序 "before"和 "after"管道中的程序来自同一个 "toolset"

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:43 25 4
gpt4 key购买 nike

说,我正在编写一些工具集,其中每个工具都对相同的文本数据流进行操作,对其进行解析,对其进行一些操作并使用与原始输入相同的语法返回文本流。这些工具可以是在管道中组合(与其他 unix 工具/脚本/其他)。因为文本输入处理(解析)非常昂贵,我想避免它以防万一工具集中的两个或多个工具在管道中一个接一个地使用相反,二进制流(直接存储在内存结构中,没有无用的“额外”解析)。是吗可能知道(使用一些技巧、进程间通信或其他任何方式)如果管道中任何工具“之前”或“之后”的工具是工具集的一部分?我猜unix 环境没有为这种“信号”(AFAIK)做好准备。感谢您的想法...

最佳答案

不,通过管道连接在一起的进程没有双向通信的方法。如果解析真的非常昂贵以至于这是必要的(我猜它不是,但对其进行分析),那么我可以想到两个选项:

  • 有一个主程序可以选择告诉它运行哪些工具,以什么顺序运行,然后让它运行一个“解析”工具,然后是请求的工具(全部使用二进制 I/O),然后是一个“输出”工具。公开与解析/输出工具一起包装的各个工具也不是非常困难。
  • 如果希望用户具备足够的知识,让每个工具都允许标志告诉他们期望二进制输入并给出二进制输出,以便用户可以像这样链接:

    tool1 -o | tool2 -i -o | tool3 -i -o | tool4 -i

    其中-o表示给出二进制输出,-i表示接受二进制输入。

关于c - 识别程序 "before"和 "after"管道中的程序来自同一个 "toolset",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com