home *** CD-ROM | disk | FTP | other *** search
- /*
- * Pilfered from berkeley code.
- */
- #if defined(LIBC_SCCS) && !defined(lint)
- static char sccsid[] = "@(#)system.c 5.2 (Berkeley) 3/9/86";
- #endif LIBC_SCCS and not lint
-
- #include <signal.h>
-
- system(s)
- char *s;
- {
- int status, pid, w;
- register int (*istat)(), (*qstat)();
-
- if ((pid = vfork()) == 0) {
- execl("/bin/csh", "csh", "-fc", s, 0);
- _exit(127);
- }
- istat = signal(SIGINT, SIG_IGN);
- qstat = signal(SIGQUIT, SIG_IGN);
- while ((w = wait(&status)) != pid && w != -1)
- ;
- if (w == -1)
- status = -1;
- signal(SIGINT, istat);
- signal(SIGQUIT, qstat);
- return(status);
- }
-