当我运行此代码时,出现“分段错误(核心转储)”。显然它来自 wait() 部分,但我无法弄清楚。
int main(int argc, char** argv)
{
pid_t pid, pid2;
int etat;
char** entree_util;
entree_util[0]="none";
char * accueil = "Veuillez entrer votre commande\n";
while (entree_util[0]!="^D")
{
write(1,accueil, strlen(accueil)*sizeof(char) );
entree_util=lis_ligne();
pid=fork();
if(pid==-1)
{
perror("Erreur à l'appel de fork\n");
exit(-1);
}
else if(pid==0)
{
execv(entree_util[0],entree_util+1);
}
else
{
pid2 = wait(&etat);
}
}
return 0;
}