В настоящее время я пишу задание для своего класса, которое должно действовать как очень простая оболочка. Я почти закончил, но у меня возникла проблема с execvp
и моим набором символов параметров. Вот небольшой фрагмент моего кода.
//Split the left content args
istringstream iss(left);
while(getline(iss, s, ' ')){
v.push_back(s);
}
//Get the split string and put it into array
const char* cmd_left[v.size()+1];
for(unsigned int i = 0; i < v.size(); i++){
cmd_left[i] = v.at(i).c_str();
}
cmd_left[v.size()] = 0;
v.clear();
И этим пользуются...
execvp(cmd_left[0], cmd_left);
Моя ошибка
assign3.cxx:96:34: error: invalid conversion from ‘const char**’ to ‘char* const*’ [-fpermissive]
Я понимаю, что проблема в том, что мой массив символов не заполнен постоянными данными, поэтому мне нужно перейти от const char*
к const char* const
. Я кое-что читал о const_cast
, но я не был уверен, что это то, что мне нужно делать.
Если вы будете так любезны, не могли бы вы помочь мне правильно принять мой массив массивов символов этой функцией? Если вам нужно, чтобы я опубликовал больше моего кода, дайте мне знать.
Спасибо