Выхожу из положения, используя одинарные кавычки. Разумеется, это не дело — я знаю, что это возможно, и один из известных мне примеров — lash_wrap, написанный на C++.
Нашел там следующее:
Код: Выделить всё
// We strip out all arguments after "--" and concenate them
// to the app_commandline string
int old_argc = argc;
for (int i = 0; i < argc; ++i)
{
if (std::string (argv[i]) == "--")
{
argc = i;
break;
}
}
.............................................
// Ok, let's try to spawn the app
GPid child_id;
GError *error;
if (!(g_spawn_async (NULL, argv + argc + 1, NULL, (GSpawnFlags)(G_SPAWN_SEARCH_PATH|G_SPAWN_DO_NOT_REAP_CHILD), 0, 0, &child_id, &error)))
{Попробовал в своем примере первую часть и вывод на печать *(argc + atgc + 1), в результате выводится только первый аргумент. Видимо, оно правильно обрабатывается только в g_spawn_async.