在 Vala 中执行系统命令

Posted

技术标签:

【中文标题】在 Vala 中执行系统命令【英文标题】:Executing system command in Vala 【发布时间】:2011-03-12 09:01:40 【问题描述】:

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

【问题讨论】:

【参考方案1】:

好的,明白了:Glib.Process.spawn_command_line_sync。

【讨论】:

你可以接受你自己的答案 ;) 还是有什么要澄清的? 其实在windows下用起来好像很复杂,但另一方面我已经不需要了。 这正是我对答案的评论。 ;) 很好,你也发现了。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

您可以将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;

【讨论】:

以上是关于在 Vala 中执行系统命令的主要内容,如果未能解决你的问题,请参考以下文章

Python中执行系统命令常见的几种方法

Python中执行系统命令常见的几种方法--转载

在 Perl 中编码时安全地执行系统命令

Linux系统history命令小技巧

请教大牛 在win系统下 php调用系统命令删目录

Pikachu- RCE 远程系统命令/ 代码执行