我目前正在为我的班级写一个作业,该作业应该充当一个非常基本的外壳。我快完成了,但我遇到了一个问题,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*
to const char* const
。我读了一些关于的东西const_cast
,但我不确定这是否是我需要做的。
如果你好心,你能帮我让我的字符数组数组被那个函数正确接受吗?如果您需要我发布更多代码,请告诉我。
谢谢