111696Smckusick #ifndef lint 2*12345Slayer static char sccsid[] = "@(#)shell.c 4.2 (Berkeley) 05/09/83"; 311696Smckusick #endif not lint 411696Smckusick 511696Smckusick /* 611696Smckusick ** CALL THE SHELL 711696Smckusick */ 811696Smckusick 911696Smckusick shell() 1011696Smckusick { 1111696Smckusick int i; 1211696Smckusick register int pid; 1311696Smckusick register int sav2, sav3; 1411696Smckusick 1511696Smckusick if (!(pid = fork())) 1611696Smckusick { 1711696Smckusick setuid(getuid()); 1811696Smckusick nice(0); 19*12345Slayer execl("/bin/csh", "-", 0); 20*12345Slayer syserr("cannot execute /bin/csh"); 2111696Smckusick } 2211696Smckusick sav2 = signal(2, 1); 2311696Smckusick sav3 = signal(3, 1); 2411696Smckusick while (wait(&i) != pid) ; 2511696Smckusick signal(2, sav2); 2611696Smckusick signal(3, sav3); 2711696Smckusick } 28