JavaScript Glib.spawn_async 标准输出文件描述符

1 投票
2 回答
649 浏览
提问于 2025-04-16 23:35

我想在一个GNOME 3的扩展中,用JavaScript的GLib绑定来启动一个进程,使用的是spawn_async这个方法。

我需要一个类似于Python文档中“standard_output=True”这个参数的东西,http://developer.gnome.org/pygobject/stable/glib-functions.html。这个参数开启后,可以返回进程的标准输出的文件描述符。Python的API和C语言的API在这方面差别很大。

可惜的是,我找不到关于JS和GTK的API的详细文档,官方页面甚至没有列出这些内容,尽管这个扩展的大部分是用JavaScript写的……

我问这个问题的背景是,我需要调用一个进行串行通信的Python脚本,因为我找不到其他方法让JavaScript从这样的脚本中获取数据,只能通过启动一个进程来实现。

你有没有什么想法,如何获取像这样启动的进程的标准输出?

2 个回答

0

这个页面包含了关于如何在JavaScript中嵌入或使用你的“C模块”的信息。你可以在这里找到相关的内容:http://developer.gnome.org/seed/3.0/seed-Modules.html。下面是一个从页面上摘录的例子:

hello = imports.hello;
hello.say_hello_to("Tim");
1

你提到的pygobject文档是针对静态库的。因为Seed是通过GObject的自省来工作的,所以你更应该相信C语言的文档。(Seed是一个用于GObject自省的JavaScript库)

也许你可以自己写一个C语言的函数,做你想要的事情,然后把它暴露给Seed使用:http://developer.gnome.org/seed/stable/seed-Native-Functions.html

撰写回答