私はvalaを使用して、spawn_command_line_sync()でGLibを使用して外部アプリケーションを起動しようとしています。ドキュメント( http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_sync )によると、外部アプリケーションの出力を格納するための文字列を渡すことができます。
これは、数行を印刷するスクリプトを開始するときに正常に機能しますが、バイナリファイルの内容を印刷するプログラムを呼び出す必要があります。(たとえば、「cat / usr / bin / apt-get」)
文字列ではなく、DataStreamなどで外部プログラムの出力を受け取る方法はありますか?
外部プログラムの出力をファイルに書き込むことを計画しているので、「cat / usr / bin / apt-get> outputfile」を呼び出すだけで代替手段になりますが(それほど良くはありません)、うまくいかないようです。 。
とにかく、私はある種の出力ストリームを取得することを望みます。助けていただければ幸いです。
使用するコード:
using GLib;
static void main(string[] args) {
string execute = "cat /usr/bin/apt-get";
string output = "out";
try {
GLib.Process.spawn_command_line_sync(execute, out output);
} catch (SpawnError e) {
stderr.printf("spawn error!");
stderr.printf(e.message);
}
stdout.printf("Output: %s\n", output);
}