【发布时间】:2016-07-07 00:10:45
【问题描述】:
我是 C 系统编程的新手。 我想在 exec* 函数族之后执行代码,但我不知道具体如何。
我读到我需要 fork,然后尝试在 exec* 函数之后执行代码。我确实分叉了我的进程,但是 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;
}
有什么想法吗? 谢谢你
【问题讨论】:
-
我假设您的意思是
printf不起作用,因为exit(0);有点毫无意义。无论如何,您在此处发布的内容对我有用。 -
@WhozCraig,是的,这就是我的意思;调用 exec 函数后 printf 语句不起作用。
-
你知道我怎样才能让它工作吗?
-
这里看起来不错:ideone.com/TCkYbu
-
@OliverCharlesworth :这是行不通的,除非我们使用 wait(NULL)
标签: c unix operating-system