gpt4 book ai didi

c - Execlp 不返回数字

转载 作者:行者123 更新时间:2023-11-30 15:10:50 26 4
gpt4 key购买 nike

我有 2 个程序,我需要第二个程序的值才能正确继续我的第一个程序。我使用 execlp 调用第二个程序并将杀死次数保存在 ret 中,但没有正确返回该数字。我可以帮助谁吗?

首次申请;

pid_t pid;
int ret=0;
pid = fork();
if(pid == 0){

ret = execlp("/media/partilha/scomp1516t2dag02/modulo1/ex20/batota", "batota", (char*) NULL);
if(ret == -1){
printf("Erro da aplicação!");
exit(0);
}
}
wait(&estado);

第二次申请

int main(void){
int ret;

srand(time(NULL));
ret = (rand() % 5) + 1;
exit(ret);
}

最佳答案

execlp 系统调用未返回除非有错误。它将用一个新程序替换您当前的程序(您的代码停在那里,被新程序替换)。

来自 execlp() 的手册页:

"The exec() family of functions replaces the current process image with a new process image"

也许你应该研究一下fork()是如何工作的,它可以帮助你。 wait() 系统调用挂起调用进程的执行,直到其子进程之一终止。除了这里,你的进程没有子进程;使用 fork() 来制作一个。

关于c - Execlp 不返回数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974838/

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