gpt4 book ai didi

glib - 如何使用 vala/glib 管道到进程

转载 作者:行者123 更新时间:2023-12-01 07:33:20 26 4
gpt4 key购买 nike

我正在尝试使用 GLib 的 spawn_command_line_sync 将 echo 的输出通过管道传输到命令中方法。我遇到的问题是 echo 将整个命令解释为参数。

为了更好地解释,我在我的代码中运行它:

string command = "echo \"" + some_var + "\" | command";
Process.spawn_command_line_sync (command.escape (),
out r, out e, out s);

我希望变量被回显到管道中,并且命令通过管道传输的数据运行,但是当我检查结果时,它只是在 echo 之后回显所有内容,如下所示:
"some_var's value" | command

我想我可以使用 Posix类来运行命令,但我喜欢有结果、错误和状态值来收听 spawn_command_line_sync方法提供。

最佳答案

问题是你为内核的 exec() 提供了 shell 语法。系统调用。 shell 管道操作符将一个进程的 stdout 重定向到下一个进程的 stdin。要使用 Vala 实现它,您需要获取 command 的标准输入的文件描述符。你正在运行的进程,然后写 some_var手动到它。

关于glib - 如何使用 vala/glib 管道到进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381599/

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