Spawn.commandLineSync

A simple version of g_spawn_sync() with little-used parameters removed, taking a command line instead of an argument vector. See g_spawn_sync() for full details. command_line will be parsed by g_shell_parse_argv(). Unlike g_spawn_sync(), the G_SPAWN_SEARCH_PATH flag is enabled. Note that G_SPAWN_SEARCH_PATH can have security implications, so consider using g_spawn_sync() directly if appropriate. Possible errors are those from g_spawn_sync() and those from g_shell_parse_argv(). If exit_status is non-NULL, the platform-specific exit status of the child is stored there; see the documentation of g_spawn_check_exit_status() for how to use and interpret this. On Windows, please note the implications of g_shell_parse_argv() parsing command_line. Parsing is done according to Unix shell rules, not Windows command interpreter rules. Space is a separator, and backslashes are special. Thus you cannot simply pass a command_line containing canonical Windows paths, like "c:\\program files\\app\\app.exe", as the backslashes will be eaten, and the space will act as a separator. You need to enclose such paths with single quotes, like "'c:\\program files\\app\\app.exe' 'e:\\folder\\argument.txt'".

  1. int commandLineSync(ChildWatch externalWatch, bool delegate(string) readOutput, bool delegate(string) readError)
  2. int commandLineSync(string commandLine, string standardOutput, string standardError, int exitStatus)
    class Spawn
    static
    int
    commandLineSync
    (,
    out string standardOutput
    ,
    out string standardError
    ,
    out int exitStatus
    )

Parameters

commandLine string

a command line

standardOutput string

return location for child output. out[array zero-terminated=1][element-type guint8][allow-none]

standardError string

return location for child errors. out[array zero-terminated=1][element-type guint8][allow-none]

exitStatus int

return location for child exit status, as returned by waitpid(). out[allow-none]

Return Value

Type: int

TRUE on success, FALSE if an error was set

Meta