/* Since: 2.40 Returns: (transfer full): A new #GSubprocess, or NULL on error (and @error will be set)  */
GSubprocess* g_subprocess_launcher_spawnv(GSubprocessLauncher *launcher, const gchar *const *argv, GError **error)
/* Since: 2.40 Returns: (transfer full): A new #GSubprocess, or NULL on error (and @error will be set)  */
GSubprocess* g_subprocess_launcher_spawnv(GSubprocessLauncher *launcher, const gchar *const *argv, GError **error)
{
  GSubprocess *subprocess;
  g_return_val_if_fail (argv != NULL && argv[0] != NULL && argv[0][0] != '\0', NULL);
  subprocess = g_object_new (G_TYPE_SUBPROCESS,
                             "argv", argv,
                             "flags", launcher->flags,
                             NULL);
  g_subprocess_set_launcher (subprocess, launcher);
  if (!g_initable_init (G_INITABLE (subprocess), NULL, error))
    {
      g_object_unref (subprocess);
      return NULL;
    }
  return subprocess;
}