gpt4 book ai didi

c - execl 没有捕获所有参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:48 27 4
gpt4 key购买 nike

这个 execl 语句可能有什么问题?当我尝试运行它时,接收可执行文件提示 argc 小于 3。当我打印 argv 内容时,我得到以下信息:

argv[1] = -1076146944
argv[2] = 0

尽管参数包括:

numJoeysStr = 6
randomNumSeedStr = 7

execl("/path/to/executable", "numJoeysStr", "randNumSeedStr", (char *)0);

FWIW,我尝试用 NULL 替换 (char *)0)。那没有什么不同。

Chris Jester-Young 解决了我最大的问题,但现在我在函数中放置两次后得到以下结果:

argv[1] = -1075725068
argv[2] = -1075725056

我尝试取消引用,方法是:

printf("argv[1] = %d\n", *argv[1]);
printf("argv[2] = %d\n", *argv[2]);

只接收以下内容:

argv[1] = 110
argv[2] = 114

当我期望的时候:

argv[1] = 6
argv[2] = 7

对于最后一个问题,事实证明,将变量传递给 execl 时不带引号会得到我预期的数字。不知何故,我的印象是所有 execl 参数(除了最后一个)都必须用引号引起来,甚至是变量。

最佳答案

您实际上需要指定 "/path/to/executable" 两次。第一个是要执行的程序,第二个是新进程的 argv[0]

关于c - execl 没有捕获所有参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133628/

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