在Vala中执行系统命令

时间:2010-07-06 15:07:41

标签: function system command vala

我想在Vala中执行一个命令(比如ls),比如Python os.system函数,或者更好的是popen函数。有什么想法吗?

3 个答案:

答案 0 :(得分:15)

好的,得到它:Glib.Process.spawn_command_line_sync。

答案 1 :(得分:10)

最好使用包posix。 然后,只需执行返回int的Posix.system("command")

http://www.valadoc.org/posix/Posix.system.html

答案 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;
}