我想使用 execev 函数从另一个程序的分支运行 texwork 程序,因此,我有以下设置:
char *argVec[3];
argVec[0] = "texworks";
argVec[1] = "temp.tex";
argVec[2] = NULL;
execvp("texworks", argVec);
它有效,但警告我:
Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*« [-Wwrite-strings]
  argVec[1] = "temp.tex";
即:警告,从字符串常量到 char* 的旧转换(argVec[0] 的警告相同)
我应该担心吗,如果是这样,我该如何避免这种情况?
(哦,我在 Linux,64 位,g++ 4.8.1 -2013 预发行版中,并且 const char* argVec[] = {"texworks" .. etc 失败:
Fehler: ungültige Umwandlung von »const char**« in »char* const*« [-fpermissive]
  execvp("texworks", argVec);
                           ^
In file included from path/to/file:
/usr/include/unistd.h:578:12: Fehler:   Argument 2 von »int execvp(const char*, char* const*)« wird initialisiert [-fpermissive]
 extern int execvp (const char *__file, char *const __argv[])
        ^
/path/to/file:cursor:position: Fehler: Sprung zur case-Marke [-fpermissive]
  default:
  ^
/path/to/file:cursor:position:: Fehler:   überschneidet Initialisierung von »const char* argVec [3]«
  const char * argVec[] = {"texworks" , "temp.tex", NULL};