尝试使用execve命令时,收到有关我最后两个参数的错误。
#include <unistd.h>
const char * c = enviorment.c_str();
execve(full.c_str() , cl.getArgVector(), c);
我尝试过使用复制字符串中的几个不同选项,例如:
char *temp2 = new char[(path).size()+1];
strcpy ( temp2, cl.getCommand());
execve(full.c_str() , cl.getArgVector(), temp);
但是我无法让它工作并收到错误消息:
错误:无法将char *转换为参数3的char * const *为int execve(const char *,char * const *,char * const *)
答案 0 :(得分:0)
环境变量数组是一个字符串数组(char *),而不是一个字符串。它需要一个NULL值作为数组中的最后一个元素。
模仿您用来实现c1.getArgVector()的代码,确保数组中的最后一个char *为NULL。