gpt4 book ai didi

linux - 执行 p1|p2 的 Bash 指令

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

谁能帮我回答这个问题:允许 bash 进程解释和执行命令的指令序列(系统调用)是什么p1 | p2 , p1 和 p2 是两个可执行文件。

最佳答案

这看起来是一个很好的解释:https://brandonwamboldt.ca/how-linux-pipes-work-under-the-hood-1518/

长话短说:

  1. 主进程(例如 bash)使用 pipe() 系统调用创建管道,它返回存储在 int pipefd[2] 中的两个文件描述符。

  2. 然后它 (bash) fork() 为每个程序创建两个子进程。

  3. 在每个子进程中,使用 dup2(pipefd[READ-or-WRITE],stdinorout) 修改的(管道的)标准输入或输出文件描述符。

  4. 最后,所需的程序(p1p2)在子进程中执行,并从管道读取(或写入)管道。

关于linux - 执行 p1|p2 的 Bash 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604866/

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