gpt4 book ai didi

c - 我如何创建两个子进程,每个子进程在c中运行不同的程序

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

我试图通过c中的父进程创建2个子进程,每个子进程运行不同的程序?

如何更改此代码以让每个进程运行 execution1()execution2()

void execution1(char *argve[]);
void execution2(char *argve[]);

int main(int argc, char *argv[], char *argve[]) {
pid_t pid[2];
int i;

/* Creation du processus fils */
for(i=0; i < 2; ++i){
if((pid[i] = fork()) == -1) {
perror("Erreur lors de la creation du fils ");
exit(EXIT_FAILURE);
}
if(pid[i] == 0)
execution1(argve);
//execution2(argve); how can i let only the 2nd child run this line
}
/* Attente de la fin de l'execution du fils */
printf("Attente de la fin du fils...\n");
if(waitpid(pid, NULL, 0) == -1) {
perror("Erreur lors de l'attente de la fin du processus ");
exit(EXIT_FAILURE);
}
printf("C'est bon !\n");

return EXIT_SUCCESS;
}

最佳答案

您是否考虑过使用 i 来实现这一点?如果i为0,则执行execution1,如果i为1,则执行execution2

for(i=0; i < 2; ++i)
{
if((pid[i] = fork()) == -1) {
perror("Erreur lors de la creation du fils ");
exit(EXIT_FAILURE);
}

if(pid[i] == 0)
{
if(i == 0)
execution1(argve);
else
execution2(argve);

// exiting child
exit(0);
}

}

// waiting
for(i=0; i < 2; ++i)
{
if(waitpid(pid[i], NULL, 0) == -1) {
perror("Erreur lors de l'attente de la fin du processus ");
exit(EXIT_FAILURE);
}
}

关于c - 我如何创建两个子进程,每个子进程在c中运行不同的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245923/

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