/* ECP: FILEname=fig13_16.c */ /* 1*/ #include /* 2*/ #include /* 3*/ #include /* 4*/ #include /* 5*/ #include /* 6*/ int /* 7*/ SimpleSystem( const char *Command ) /* 8*/ { /* 9*/ pid_t Pid; /*10*/ int Status; /*11*/ if( Command == NULL ) /*12*/ return 1; /*13*/ Pid = fork( ); /*14*/ if( Pid < 0 ) /* Error */ /*15*/ return -1; /*16*/ if( Pid == 0 ) /* Child */ /*17*/ { /*18*/ execl( "/bin/sh", "sh", "-c", Command, NULL ); /*19*/ _exit( 127 ); /* execl Failed; Give Up On Child */ /*20*/ } /*21*/ /* else Parent */ /*22*/ waitpid( Pid, &Status, 0 ); /*23*/ return Status; /*24*/ }