execve 명령을 사용하려고하면 마지막 2 개의 인수에 대한 오류가 발생합니다.C++ execve 명령에서 문자열을 char [] *로 어떻게 변환합니까?
#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);
을하지만 그것이 작동 및 오류 메시지가받을 얻을 수 없어요 :
오류 : const char *, char * const *, char * const *)
'환경'은 어떻게 생겼습니까? ''KEY = VALUE ''형식의 단일 키/값 쌍입니까, 아니면 여러 개의 구분 된 키 - 바입니까? –
@ JorgeIsraelPeña 나는 환경 특유의 것 같다고 생각한다. (* ba-dun-tss *) –
@ RichardJ.RossIII 아, 사실 맨 페이지에서 관습이지만 꼭 시행해야하는 것은 아니다. 나는''KEY = VALUE ''형식의 문자열 배열이 필요하다는 인상을 받고 실수로. 그럼에도 불구하고 그의 환경의'execve'가'envp' 매개 변수를 어떻게 기대하는지에 따라'environment' 문자열을 분리해야 하는지를 물었습니다. –