如何在windows下使用C\C++实现linux管道

发布于 2024-10-07 08:22:51 字数 541 浏览 3 评论 0原文

例如,在linux中,以下命令

$ firstProgram | secondProgram

将firstProgram的输出作为secondProgram的输入,

在linux中实现这一点的C语言基本代码是

#include <unistd.h>
.
.
.
int fd[2];
forkStatus = fork();
if (status == 0)
{
  close(1);
  dup(fd[1]);
  close(fd[1]);
  close(fd[0]);
  execv("firstProgram",...);
}
forkStatus = fork();
if (status == 0)
{
  close(0);
  dup(fd[0]);
  close(fd[1]);
  close(fd[0]);
  execv("secondProgram",...);
}
close(fd[1]);
close(fd[0]);

我需要在windows中做类似的事情。 谢谢

for example, in linux the following command

$ firstProgram | secondProgram

carries the output of firstProgram as an input to secondProgram

the basic code in C that makes it happen in linux is

#include <unistd.h>
.
.
.
int fd[2];
forkStatus = fork();
if (status == 0)
{
  close(1);
  dup(fd[1]);
  close(fd[1]);
  close(fd[0]);
  execv("firstProgram",...);
}
forkStatus = fork();
if (status == 0)
{
  close(0);
  dup(fd[0]);
  close(fd[1]);
  close(fd[0]);
  execv("secondProgram",...);
}
close(fd[1]);
close(fd[0]);

i need to do something similar in windows.
thanks

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

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

发布评论

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

评论(2

冷夜 2024-10-14 08:22:51

请参阅 Win32 CreatePipe() 创建匿名管道。 此示例(标题为“创建具有重定向输入和输出的子进程”)展示了如何在 Win32 中复制代码。

See the Win32 CreatePipe() to create an anonymous pipe. This example (titled "Creating a Child Process with Redirected Input and Output") shows how to replicate your code in Win32.

没︽人懂的悲伤 2024-10-14 08:22:51

在 Linux 版本中,您基本上是重定向输入和输出。这可以使用本机 Win32 API 或 .NET 允许的 System.* 库来完成。您可以在 MSDN http://msdn.microsoft.com/en- 上找到更多示例我们/库/ccf1tfx0.aspx

In the linux version you are basically redirecting the input and output. This can be done using the native Win32 API or if .NET is permissible System.* library. you can find more examples on MSDN http://msdn.microsoft.com/en-us/library/ccf1tfx0.aspx

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