gpt4 book ai didi

c - execle() 函数中的错误地址错误

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

我的目标是学习如何执行 execle() 函数。我在 Head First C 书中找到了这段代码。

这是主进程代码(diner_info.c):

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

printf("Diners: %s\n", argv[1]);
printf("Juice: %s\n", getenv("JUICE"));
return 0;
}

这包含 execle() 函数 (my_exec_program.c):

#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>

char *my_env[] = {"JUICE=peach and apple", NULL};

int main()
{

execle("diner_info", "diner_info", 4, NULL, my_env);
puts(strerror(errno));

return 0;
}

当我编译所有的c文件时,我没有报错。但是当我运行编译后的文件(my_exec_program)时,我从 my_exec_program 得到了这个结果:

Bad address

有人帮我解决这个问题吗?

最佳答案

4 被视为指向 char 的指针。如果您想将 4 作为 argv 参数传递,它需要是一个字符串:"4"

关于c - execle() 函数中的错误地址错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41434130/

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