我想編寫一個老派的參數向量(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