gpt4 book ai didi

c - 如何在 c 中 exec() 我的程序?

转载 作者:行者123 更新时间:2023-11-30 16:37:08 24 4
gpt4 key购买 nike

我正在尝试使用 execl () 函数在 c 中运行我的程序。目前,运行该程序的代码如下所示,info_proc 位于 info_proc.c 文件中,其 main 包含 printf。

`switch(fork()) {
case -1:
perror("fork");
exit(EXIT_FAILURE);
case 0:
getcwd(dir, 256);
strcat(dir, "/info_proc");
printf("dir %s", dir);
execl(dir, "info_proc", req->data, NULL);
perror("execl");
exit(EXIT_FAILURE);
default:
wait(NULL);
break;
}

`

我的程序向执行返回“execl:错误地址”...我真的不知道错误来自何处

最佳答案

所以,我的问题是 req->data 是 pid_t。这是我解决问题的方法(感谢 cdark、usr2564301 和 Fred Larson!!)

char *dir = malloc(sizeof(char) * 256);
switch(fork()) {
case -1:
perror("fork");
exit(EXIT_FAILURE);
case 0:
getcwd(dir, 256);
strcat(dir, "/info_proc");
printf("dir %s", dir);
char *pid = malloc(10 * sizeof(char));
sprintf(pid, "%d", req->data);
execl(dir, "info_proc", pid, NULL);
perror("execl");
exit(EXIT_FAILURE);
default:
wait(NULL);
break;
}

关于c - 如何在 c 中 exec() 我的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101788/

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