如何在Python中通过管道传递到os.execv'd进程的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进程的stdin

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何成功调用execv函数?

来自分类Dev

使用C数组,传递给execv()

来自分类Dev

Linux:fork和execv,等待子进程挂起

来自分类Dev

在 C 中的 execv 调用中传递指向整数的指针

来自分类Dev

如何传递重定向运算符'>'作为execv的参数?

来自分类Dev

如何解决 rsync 中的错误“execv: No such file or directory”?

来自分类Dev

我可以将const char *数组传递给execv吗?

来自分类Dev

通过execv()校准回声会打印出额外的字符

来自分类Dev

通过execv()校准回声会打印出额外的字符

来自分类Dev

类型错误:execv() arg 2 必须只包含字符串(子进程和 unicode)

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使用execv运行另一个C程序

来自分类Dev

execv函数调用后,当前程序会如何处理?

来自分类Dev

如何将 execlp 更改为 execv 并运行其他命令然后只是“ls”

来自分类Dev

在execv中运行grep的C ++搜索可执行文件路径

来自分类Dev

TypeError:execv()arg 2必须在subprocess.Popen中仅包含字符串

来自分类Dev

如何在execv()的一行中没有父文件和根文件的情况下进行tar压缩

来自分类Dev

用execv调用“ ls”

来自分类Dev

用户输入的execv

来自分类Dev

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

来自分类Dev

D编程-如何从stdin获取管道内容

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    如何成功调用execv函数?

  5. 5

    使用C数组,传递给execv()

  6. 6

    Linux:fork和execv,等待子进程挂起

  7. 7

    在 C 中的 execv 调用中传递指向整数的指针

  8. 8

    如何传递重定向运算符'>'作为execv的参数?

  9. 9

    如何解决 rsync 中的错误“execv: No such file or directory”?

  10. 10

    我可以将const char *数组传递给execv吗?

  11. 11

    通过execv()校准回声会打印出额外的字符

  12. 12

    通过execv()校准回声会打印出额外的字符

  13. 13

    类型错误:execv() arg 2 必须只包含字符串(子进程和 unicode)

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

    如何使用execv运行另一个C程序

  21. 21

    execv函数调用后,当前程序会如何处理?

  22. 22

    如何将 execlp 更改为 execv 并运行其他命令然后只是“ls”

  23. 23

    在execv中运行grep的C ++搜索可执行文件路径

  24. 24

    TypeError:execv()arg 2必须在subprocess.Popen中仅包含字符串

  25. 25

    如何在execv()的一行中没有父文件和根文件的情况下进行tar压缩

  26. 26

    用execv调用“ ls”

  27. 27

    用户输入的execv

  28. 28

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

  29. 29

    D编程-如何从stdin获取管道内容

热门标签

归档