BUona domenica a tutti,sono un nuovo iscritto e mi trovo subito a dover fare una domanda
codice:
#include "smallsh.h"



static char inpbuf[MAXBUF], tokbuf[2*MAXBUF],
	    *ptr, *tok;



static char special[]=
	{' ', '\t', '&', ';', '\n', '\0'};

int userin(char *p)		{
  int c, count;

  ptr = inpbuf;
  tok = tokbuf;

   printf("%s ",p);

  count=0;

  while(1) {

    if ((c = getchar()) == EOF)
      return(EOF);

    if (count < MAXBUF)
      inpbuf[count++] = c;

     if (c == '\n' && count < MAXBUF) {
      inpbuf[count] = '\0';
      return(count);
    }

      if (c == '\n') {	
      printf("riga in input troppo lunga\n");
      count = 0;
      printf("%s ",p);
    }
  }
}

int gettok(char **outptr)	{
  int type;

    *outptr = tok;

 

  while (*ptr == ' ' || *ptr == '\t') ptr++;



  *tok++ = *ptr;

  
  switch(*ptr++){

    case '\n':
      type = EOL; break;
    case '&':
      type = AMPERSAND; break;
    case ';':
      type = SEMICOLON; break;
    default:
      type = ARG;
           while(inarg(*ptr))
	*tok++ = *ptr++;
  }



  *tok++ = '\0';
  return(type);

}

int inarg(char c)	{
   char *wrk;

   for (wrk = special; *wrk != '\0'; wrk++)
       if (c == *wrk) return(0);

   return(1);
}
.....e.....
codice:
#include "smallsh.h"
#include <sys/types.h>
#include <stdlib.h>
char *prompt = "Comando";

int procline(void) 	
{
  char *arg[MAXARG+1];	
  int toktype;  	
  int narg;		
  int type;			
  narg=0;

  while (1) {	
	

    switch (toktype = gettok(&arg[narg])) {
	
  
      case ARG:
		
        if (narg < MAXARG)
	  narg++;
	  break;

      case EOL:
      case SEMICOLON:
      case AMPERSAND:
        type = (toktype == AMPERSAND) ? BACKGROUND : FOREGROUND;
      
        if (narg != 0) {
	  arg[narg] = NULL;
	  runcommand(arg,type);
        }
      

        if (toktype == EOL) return;
      

        narg = 0;
        break;
    }
  }
}
in questo codice devo evitare che un segnale termini tutto,deve terminare solo il figlio e rendere attiva la possibilità di usare & per il background
Mi potete dare consigli?Come faccio a disattivare nel primo caso l' "uscita"?