c - 如何将自己的输出通过管道传递给另一个进程?

标签 c linux pipe stdout

我想做简单的事情:my_process |过程2 | proc3,但以编程方式 - 不使用 shell,可以很容易地做到这一点。这可能吗?我找不到任何东西:(

编辑: 好吧,没有代码,没有人会知道我要解决什么问题。实际上,没有输出(我正在使用 printfs)

int pip1[2];
pipe(pip1);

dup2(pip1[1], STDOUT_FILENO); 
int fres = fork();

if (fres == 0) {
    close(pip1[1]);
    dup2(pip1[0], STDIN_FILENO);
    execlp("wc", "wc", (char*)0);
}
else {
    close(pip1[0]);
}

最佳答案

请了解file descriptorspipe系统调用。另外,检查 readwrite .

关于c - 如何将自己的输出通过管道传递给另一个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384377/

相关文章:

Golang io.Pipe 与 node.js 管道

c++ - 简单命令行程序中的段错误

c - C 中的位移位返回错误结果

objective-c - 用 c 或 objective-c 编写的交互式命令行应用程序的简单示例?

linux - 即使在 Debian 上进行无人值守升级,安全更新仍未决

C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题

python - 使用Python的子进程在新的Xterm窗口中显示输出

c - 如何使用具有多个子进程的文件描述符的文件指针而不会在 C 中出现 "Bad file descriptor"错误?

c - 预编译标志优化

c - pthread_spin_trylock 在多线程应用程序的 sigsegv 处理程序中是否安全?