如何在C ++ execve命令中将字符串转换为char [] *?

时间:2013-03-27 02:39:15

标签: c++ string char execve

尝试使用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 *)

1 个答案:

答案 0 :(得分:0)

环境变量数组是一个字符串数组(char *),而不是一个字符串。它需要一个NULL值作为数组中的最后一个元素。

模仿您用来实现c1.getArgVector()的代码,确保数组中的最后一个char *为NULL。