如何在Python中通过管道传递到os.execv进程的stdin

气魄

我想在替换我当前的Python进程的标准输入中写一些东西是否有捷径可寻?我一直在思考

import sys, os

r, w = os.pipe()
os.write(w, 'yo')
os.dup2(r, sys.stdin.fileno())
os.execvp('cat', [''])

但是当我在OS X中执行此操作时,尽管显示'yo',但cat仍挂起。为什么?

亚当·罗森菲尔德

您-子流程os.fork()之前execvp()的流程;然后,父级将写入管道,而子级则从管道读取数据。父级也必须close()在之后读取管道的末端fork(),而子级也必须dup2()在之前读取管道的末端stdin,然后在其之前关闭两个原始管道手柄execvp()这是相当标准的Unix管道内容。

例如:

r, w = os.pipe()
if os.fork() == 0:
    # Child process
    os.dup2(r, sys.stdin.fileno())
    os.close(r)
    os.close(w)
    os.execvp(...)
else:
    # Parent process
    os.close(r)
    os.write(w, 'yo')
    ...
    os.close(w)  # When done writing
    os.wait()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中通过管道传递到os.execv'd进程的stdin

来自分类Dev

如何在Python中通过管道传递Python进程的输出?

来自分类Dev

通过execv()执行进程时,如何在C中杀死进程及其所有子级?

来自分类Dev

如何在OS X中将STDIN传递到墙?

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

如何重定向后台进程的STDIN?

来自分类Dev

如何在Smalltalk中通过其stdin,stdout,stderr与子进程进行交互?

来自分类Dev

如何在C中读取通过stdin传递的文件

来自分类Dev

如何在R中通过管道传递到if语句

来自分类Dev

将Powershell脚本的stdin重定向到子进程

来自分类Dev

如何正确启动进程并转发stdin / stdout / stderr?

来自分类Dev

Node.js execa:如何完成对进程的stdin的写入

来自分类Dev

关闭stdin之前,Python子进程Popen readline

来自分类Dev

Python子进程:使用不会关闭的`stdin`启动进程

来自分类Dev

如何连接两个(管道stdin和stdout)Deno子进程?

来自分类Dev

是否可以通过管道传递到使用fpurge清除stdin的C程序?

来自分类Dev

使用 Python 的子进程读取通过 stdin 发送的阻塞命令的输出

来自分类Dev

将脚本中的stdin重定向到另一个进程

来自分类Dev

将连接对象从进程传递到python中的主进程

来自分类Dev

从Python子进程中的stdin读取在C ++ / Python IPC中挂起

来自分类Dev

如何在往返于Java Stdin / Stdout的管道中捕获错误

来自分类Dev

如何通过管道将命令传递给在后台运行的进程?

来自分类Dev

通过Powershell中的stdin管道dockerfile

来自分类Dev

使用子进程的stdout作为另一个进程的stdin时,有时数据不会传递给第二个子进程

来自分类Dev

通过linux终端将数据发送到另一个进程的stdin

来自分类Dev

bash是否有可能通过stdin / stdout在子进程的读取和写入之间“交互”交替?

来自分类Dev

如何在bash中使用管道(stdin)传递值以读取变量

来自分类Dev

在bash脚本中从stdin传递到python代码

Related 相关文章

  1. 1

    如何在Python中通过管道传递到os.execv'd进程的stdin

  2. 2

    如何在Python中通过管道传递Python进程的输出?

  3. 3

    通过execv()执行进程时,如何在C中杀死进程及其所有子级?

  4. 4

    如何在OS X中将STDIN传递到墙?

  5. 5

    如何通过管道grep输出从python中的STDIN中读取

  6. 6

    如何通过管道grep输出从python中的STDIN中读取

  7. 7

    如何重定向后台进程的STDIN?

  8. 8

    如何在Smalltalk中通过其stdin,stdout,stderr与子进程进行交互?

  9. 9

    如何在C中读取通过stdin传递的文件

  10. 10

    如何在R中通过管道传递到if语句

  11. 11

    将Powershell脚本的stdin重定向到子进程

  12. 12

    如何正确启动进程并转发stdin / stdout / stderr?

  13. 13

    Node.js execa:如何完成对进程的stdin的写入

  14. 14

    关闭stdin之前,Python子进程Popen readline

  15. 15

    Python子进程:使用不会关闭的`stdin`启动进程

  16. 16

    如何连接两个(管道stdin和stdout)Deno子进程?

  17. 17

    是否可以通过管道传递到使用fpurge清除stdin的C程序?

  18. 18

    使用 Python 的子进程读取通过 stdin 发送的阻塞命令的输出

  19. 19

    将脚本中的stdin重定向到另一个进程

  20. 20

    将连接对象从进程传递到python中的主进程

  21. 21

    从Python子进程中的stdin读取在C ++ / Python IPC中挂起

  22. 22

    如何在往返于Java Stdin / Stdout的管道中捕获错误

  23. 23

    如何通过管道将命令传递给在后台运行的进程?

  24. 24

    通过Powershell中的stdin管道dockerfile

  25. 25

    使用子进程的stdout作为另一个进程的stdin时,有时数据不会传递给第二个子进程

  26. 26

    通过linux终端将数据发送到另一个进程的stdin

  27. 27

    bash是否有可能通过stdin / stdout在子进程的读取和写入之间“交互”交替?

  28. 28

    如何在bash中使用管道(stdin)传递值以读取变量

  29. 29

    在bash脚本中从stdin传递到python代码

热门标签

归档