gpt4 book ai didi

c - 将文件重定向到 execv() 执行的程序?

转载 作者:行者123 更新时间:2023-11-30 19:49:46 24 4
gpt4 key购买 nike

我正在编写一个 C 程序,其中我 fork() 读取父级中的文件并通过管道传递给子级,然后在子级中将从管道接收的文件重定向到我想要执行的程序,

例如,如果我使用 doc.txt 执行/bin/less ,我将读取父级中的 doc.txt 并传递给子级,然后使用从管道读取端接收到的字符串执行 less 。除了 execv() 部分之外,其他一切都正常。

我已经阅读了 execv() 的手册页,但它对执行此操作并没有真正的帮助......

有什么帮助吗?

最佳答案

由于任何 fork 的子进程都共享父进程的文件描述符,因此您可以简单地将 stdin 重定向到带有 dup2() 的文件描述符。然后只需在您的子进程中 fork 并执行即可。

当子进程从 stdin 读取数据时,它将从您打开的文件描述符(可能是 doc.txt 的描述符)中读取。

关于c - 将文件重定向到 execv() 执行的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764970/

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