#ifndef USH_H
#define USH_H
/*
 * ush:         ush.h
 *              File contenente direttive
 *              per il preprocessore c ed
 *              eventuali routine di gestione
 *              degli errori.
 *
 * Progetto di Laboratorio di Sistemi Operativi
 * 
 * Autore:              Antonio Ospite 408/244
 * Versione:    0.1
 * Data:                Giugno 2001
 */


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <sys/types.h>

#include "jlist.h"
#include "jpipe.h"


#ifndef MAXLINE
#define MAXLINE	4096
#endif

#define VERSION		"0.1"

#define MAXCMD		32

#define READ		0
#define WRITE		1

#define FOREGROUND	1
#define BACKGROUND	0

/*
 * Ancune variabili globali
 */
extern char **environ;

joblist mylist;

/*
 * Prototipi per le funzioni di inizializazzione
 * della shell e di avvio dei processi
 */
static void init_shell (void);
static void exec_fg_job (char *);
static void exec_bg_job (char *);
static void launch_process (char *, pid_t, int);
static void put_job_in_fg (pid_t);


/*
 * stampa di un messaggio di errore ed uscita 
 */
void
err_quit (char *errormsg)
{
  perror (errormsg);
  exit (1);
}

#endif


syntax highlighted by Code2HTML, v. 0.9.1