我正在寻找一种在使用字符串数组的C ++程序中调用execvp()的方法。因此,例如,如果我有一个字符串数组,
s[0] = "ls";
s[1] = "-l";
然后,s[i].c_str()
将其转换为const char*
。但是,我需要s[i]
转换为char* const
才能将其传递给execvp()
。有没有办法在C ++中做到这一点?
答案 0 :(得分:1)
我能够回答我自己的问题。我必须将const char*
转换为char*
。
但是,由于C ++不允许从const char*
转换为char*
,因此我必须创建extern C
函数。我将字符串s
转换为C字符串(作为const char*
),并将其传递给extern
C函数。在C函数中,我可以将其从const char*
转换为char*
,然后将其传递给execvp()
。