xref: /csrg-svn/games/trek/shell.c (revision 12345)
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