嘗試使用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);
,但我無法得到它的工作,並收到一條錯誤消息:
錯誤:無法將char *轉換爲char * const *將參數3轉換爲int execve(const char *,char * const *,char * const *)
「環境」是什麼樣的?是「KEY = VALUE」形式的單個鍵/值對還是多個分隔鍵 - 變量? – 2013-03-27 02:53:41
@JorgeIsraelPeña我相信這是特定環境(* ba-dun-tss *) – 2013-03-27 02:56:18
@ RichardJ.RossIII確實,從手冊頁看來,這似乎是一個慣例,但並不一定是強制性/必要條件。我錯誤地認爲它需要是「KEY = VALUE」形式的字符串數組。儘管如此,我要求知道我們是否應該拆分他的'environment'字符串,這取決於他的環境'execve'如何期待'envp'參數。 – 2013-03-27 02:59:18