执行exec * function family之后的代码

时间:2016-03-20 14:19:14

标签: c unix operating-system

我是C语言中的系统编程新手。 我想在exec *函数系列之后执行代码,但我不知道究竟是怎么回事。

我已经读过我需要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;
}

请问好吗? 谢谢

1 个答案:

答案 0 :(得分: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;
}

我们只需要添加一个等待(NULL),以便我们等待&#34;子进程&#34;的终止。之后,它将继续执行代码。

祝你好运

哈吉尔