gpt4 book ai didi

c - 如何在我的代码内部将标准输出通过管道传输到外部应用程序? C

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:11 24 4
gpt4 key购买 nike

我目前编写了一个 udp 客户端,它只是在指定端口上监听发往特定多播组的数据包。

最后,我按以下方式将输入打印到标准输出:

write(STDOUT_FILENO, buffer, num_of_bytes);

并按以下方式执行程序:

./udp_listen 224.10.10.10 4567 | mpg321 -

通过这种方式,所有输出都通过管道传输到 mpg321 应用程序,该应用程序将字节流作为音乐播放。

上面的实现当然让我有点“失去控制”我的程序,因为它打开 mpg321 应用程序并播放。我想避免这种情况,并以某种方式直接在我的程序中将 write(....) 通过管道传输到 mpg321。

如何才能做到这一点?我正在用 C 编写代码。

谢谢。

最佳答案

感谢@kaylum 提供我正在寻找的答案。

我使用 popen 命令启动 mpg321 ,并将其 stderr 输出重定向到一个文件。

之后我使用 fileno() 方法获取文件描述符编号,与 write() 调用一起使用。

效果很好。

谢谢

关于c - 如何在我的代码内部将标准输出通过管道传输到外部应用程序? C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570093/

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