Creazione di una shell in linux [con un massimale di 5 parole da tastiera (6 considerando il comando stesso)]
all'esecuzione del programma, dopo aver inserito i comandi mi restituisce solo "Errore di segmentazione(core dump creato)"
Potreste aiutarmi a trovare il problema?
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <wait.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
int p,status,i=0, contatore=0,a;
char x[100];
while(1){
printf("%%");
scanf("%s",x);
while(x[i] != '\n') {
if(x[i]== ' '){
contatore++;
}
i++;
}
if(contatore > 5){
printf("TROPPI PARAMETRI IN INPUT");
return 0;
}
else{
p=fork();
if(p<0){ printf("\n Errore fork \n");
}
if(p==0){//controllo figlio
execlp(x,x,NULL);
}
else{
waitpid(p,&status,0);
}
}
}
}