我想在Vala中执行一个命令(比如ls),比如Python os.system函数,或者更好的是popen函数。有什么想法吗?
答案 0 :(得分:15)
好的,得到它:Glib.Process.spawn_command_line_sync。
答案 1 :(得分:10)
最好使用包posix
。
然后,只需执行返回int的Posix.system("command")
。
答案 2 :(得分:1)
您可以将GLib.Process.spawn_command_line_sync用作:
public static int main (string[] args) {
string ls_stdout;
string ls_stderr;
int ls_status;
try {
Process.spawn_command_line_sync ("ls",
out ls_stdout,
out ls_stderr,
out ls_status);
// Output: <File list>
print ("stdout:\n");
// Output: ````
print (ls_stdout);
print ("stderr:\n");
print (ls_stderr);
// Output: ``0``
print ("Status: %d\n", ls_status);
} catch (SpawnError e) {
print ("Error: %s\n", e.message);
}
return 0;
}