我想编写一个老派的参数向量(argv的)的函数中使用转换的std ::矢量<char*>到C风格的参数向量继承
INT的execve(为const char *文件名, char * const argv [],char * const envp []);
我与STL ::矢量类试过:
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?
何必复制字符串到一个数组?如果你有一个'std :: string',并且你想要一个'char *'C风格的NUL终止字符串,那么'c_str()'就已经返回了。 – 2009-11-05 20:37:20