c - 直接写入不同进程的stdout

标签 c unix

是否可以直接写入另一个进程的标准输出?

我们有两个独立的进程 A 和 B。 进程 B 应该从进程 A 写入其标准输出信息。我正在调查它并找到了管道......但问题是我真的不喜欢同时从 A 写入和从 B 读取的需要(信息量可能非常大,管道本身受系统限制?)主要是因为它可能太复杂了。也许从 A 写入文件然后从 B 将此文件打印到标准输出中会更容易......

更新: 预计进程 A 从系统启动开始就一直运行 (Unix) 进程 B 应该从控制台执行并从进程 A 获取信息。 进程之间的通信在我们的环境中很容易实现。但是由于信息量可能非常大,我想采用高效的方式将信息从 A 获取到 B 的标准输出

最佳答案

您可以通过 UNIX 域将 STDOUT 文件描述符 (1) 从 B 发送到 A 套接字连接。

你能做到manually .或者您可以使用可移植 library .

无论哪种情况,进程A 都会收到B 的文件STDOUT 描述符。然后 A 可以write() 给它。

关于c - 直接写入不同进程的stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795021/

相关文章:

bash - 从时间中删除秒数(awk,sed)

perl - 在关闭文件句柄时向 perl 脚本发送信号

perl - 为什么我从 Perl 的 system() 开始的进程不是子进程?

c - 映射区域的错误权限

c++ - 嵌入式编程开发板推荐

调试代码后找不到问题所在

c - 局部静态和局部变量的内存分配

oracle - 在命令行参数之间添加逗号

c - 指向结构体的指针,这还是指向结构体的指针吗?

C pthread_barrier同步问题