在C中重定向子进程的输入和输出

发布于 2024-11-06 03:18:26 字数 76 浏览 1 评论 0原文

我想编写一个 ac 程序,在其中创建多个子进程并将它们的输入和输出重定向到不同的文件描述符。我用谷歌搜索了很多,但找不到相关结果。请帮忙。

I want to write a c program in which i create multiple child processes and redirect their inputs and outputs to different file descriptors .I googled a lot but couldn't find relevant results. Please help .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

星軌x 2024-11-13 03:18:26

dup 开始。您确实需要更加努力地搜索。这方面有很多材料。

Start with dup. You really need to search a bit harder. There is plenty of material on this.

云雾 2024-11-13 03:18:26

答案取决于您的操作系统。在类 UNIX 系统上,您可以使用 dup() 和 dup2() 来复制文件描述符;每个子进程在执行 exec 时都会从父进程继承当前的文件描述符集。因此,通常您fork子进程,将文件描述符0、1和2设置为您想要的任何内容,然后exec()实际的子程序。

The answer depends on your operating system. On UNIX-like systems, you use dup() and dup2() to copy file descriptors around; each child process will inherit the current set of file descriptors from the parent when it is exec-ed. So typically you fork the child process, set file descriptors 0, 1, and 2 to whatever you want them to be, and then exec() the actual child program.

私藏温柔 2024-11-13 03:18:26

我最喜欢的是 forkpty。此函数分叉一个子函数,并为您提供其标准输入/标准输出的文件描述符。你可以在fork之后使用exec,

My favorite is forkpty. This function forks a child and give you a file descriptor to its stdin/stdout. You can use exec after forking,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文