gpt4 book ai didi

c execv通过函数传递参数

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:37 24 4
gpt4 key购买 nike

我试图理解这段代码:

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 及更高版本。

关于c execv通过函数传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45444539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com