https://stackoverflow.com/a/236803/6361644에서 언급 한 다음 코드를 사용하여 문자열을 벡터로 구문 분석하여 각 요소를 공백으로 구분하는 다음 코드를 작성했습니다. 두 번째 요소는 덮어 쓰는 이유 코드 뒤에벡터로 문자열 나누기 <char*> 벡터 요소를 덮어 씁니다.
std::string line = "ls -l -a";
std::string cmd;
std::vector<char*> argv;
std::stringstream ss;
ss.str(line);
std::string tmp;
getline(ss, cmd, ' ');
argv.push_back(const_cast<char*>(cmd.c_str()));
while(getline(ss, tmp, ' '))
argv.push_back(const_cast<char*>(tmp.c_str()));
argv.push_back(NULL);
인쇄 ARGV는 잘 모르겠어요
{gdb) print argv
$22 = std::vector of length 3, capacity 4 = {0x26014 "ls", 0x2602c "-a", 0x2602c "-a", 0x0}
제공합니다. 어떤 조언을 부탁드립니다.
실제로 링크 된 답변에서 언급 한 코드를 사용하지 않았습니다. – Barry