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

How do you convert a string to a char[]* in C++ execve command?

本文关键字:转换 字符 字符串 c++ execve 命令      更新时间:2023-10-16

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

但是我无法让它工作并收到一个错误消息:

错误:无法将参数3转换为int execve(const char*, char* const*, char* const*)

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

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