gpt4 book ai didi

c - 在 exec* 函数族之后执行代码

转载 作者:行者123 更新时间:2023-11-30 17:03:33 25 4
gpt4 key购买 nike

我是 C 系统编程新手。我想在 exec* 函数系列之后执行代码,但我不知 Prop 体如何执行。

我读到我需要 fork ,然后尝试在 exec* 函数之后执行代码。我确实 fork 了我的进程,但是 exec* 函数之后的代码仍然无法工作。

这是迄今为止我的代码:

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

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

printf("Programme de manipulation de recouvrement en C\n\n");
int status,infoStats;
pid_t processusFils;

//Usage du programme
if(argc == 1){
printf("USAGE : %s args1 ... argN \n\n",argv[0]);
exit(1);
}

processusFils = fork();
if(processusFils < 0){
perror("Erreur fork du processus fils ");
exit(1);
}
if(processusFils == 0){

execvp(argv[1],argv+1);

exit(0);

}

printf("Hello world \n");
return 0;
}

请问有什么想法吗?谢谢您

最佳答案

经过多次编辑,如果有人需要的话,这里是正确的答案。

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

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

printf("Programme de manipulation de recouvrement en C\n\n");
int nombre1,nombre2;
pid_t processusFils;

//Usage du programme
if(argc == 1){
printf("USAGE : %s args1 ... argN \n\n",argv[0]);
exit(1);
}


processusFils = fork();
wait(NULL);
if(processusFils < 0){
perror("Erreur fork du processus fils ");
exit(1);
}
if(processusFils == 0){
execvp(argv[1],argv+1);
exit(0);

}
printf("Hello world \n");

return 0;
}

我们只需要添加一个wait(NULL),这样我们就可以等待“子进程”的终止。之后,父级将继续执行代码。

祝你好运

哈吉尔

关于c - 在 exec* 函数族之后执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114870/

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