我想准备一个老式的参数向量(argv)在函数中使用
int execve(const char *filename, char *const argv[],char *const envp[]);
我尝试使用 stl::vector 类:
std::string arguments = std::string("arg1");
std::vector<char*> argv;
char argument[128];
strcpy(argument, arguments.c_str());
argv.push_back(argument);
argv.push_back('\0'); // finish argv with zero
最后我将向量传递给 execve()
execve("bashscriptXY", &argv[0], NULL)
代码编译但 ArgV 被 execve()“忽略”。所以这似乎是错误的,我正在尝试。我应该如何使用 c++ 以有效的方式构建 argV?