我试图理解以下代码:
char * pl[] = {"test.sh", NULL}; execv("./test.sh", pl);
这将从c程序执行我的脚本,但不会:
execv("./test.sh", ["test.sh", NULL]);
这也不起作用:
execv("./test.sh", (char *) ["test.sh", NULL]);
相同的精确错误。。。
我显然误解了 char * [] 声明类型。我应该可以施放阵法吗?我能把它写成一行代码吗?
char * []
我不理解{},我如何将这个位传递给函数,这是这个代码段的最终目标?
可以使用复合文字:
execv("./test.sh", (char*[]){"test.sh", NULL});
这仅适用于C99及更高版本。