c execv通过函数传递参数
c execv pass arguments through a function
我正在尝试理解这段代码:
char * pl[] = {"test.sh", NULL};
execv("./test.sh", pl);
这将从 c 程序执行我的脚本,但这不会:
execv("./test.sh", ["test.sh", NULL]);
这传递了一条错误消息:
error: expected expression before '[' token
这也不行:
execv("./test.sh", (char *) ["test.sh", NULL]);
同样的错误...
这是怎么回事?
我显然误解了 char * []
声明类型。我应该能够投射阵列吗?我可以把它写成一行代码吗?
我不理解 {},我如何将这个位传递给这个代码片段的最终目标函数?
您可以使用复合文字:
execv("./test.sh", (char*[]){"test.sh", NULL});
这仅适用于 C99 及更高版本。
我正在尝试理解这段代码:
char * pl[] = {"test.sh", NULL};
execv("./test.sh", pl);
这将从 c 程序执行我的脚本,但这不会:
execv("./test.sh", ["test.sh", NULL]);
这传递了一条错误消息:
error: expected expression before '[' token
这也不行:
execv("./test.sh", (char *) ["test.sh", NULL]);
同样的错误...
这是怎么回事?
我显然误解了 char * []
声明类型。我应该能够投射阵列吗?我可以把它写成一行代码吗?
我不理解 {},我如何将这个位传递给这个代码片段的最终目标函数?
您可以使用复合文字:
execv("./test.sh", (char*[]){"test.sh", NULL});
这仅适用于 C99 及更高版本。