我需要使用spawnvp()运行命令,以便重定向输出。我的问题是,我没有 argv,而只是一个带有整个命令的字符串,所以我需要拆分它。不幸的是,当我将生成的 argv 传递给函数时出现异常。
这样做是有效的:
char* argv[2];
argv[0] = "kzip";
argv[1] = NULL;
这就是我这样做的方式,但失败了:
char** argv2 = (char**)malloc(sizeof(char*) * 2);
argv2[0] = "kzip";
argv2[1] = NULL;
这就是我所说的 spawnvp():
hProcess = (HANDLE)spawnvp(P_NOWAIT, argv2[0], (const char* const*)&argv2);
我知道 char[] 和 char* 之间存在一些区别,但我不知道如何创建动态创建的 char*[] 而不是 char**。