home *** CD-ROM | disk | FTP | other *** search
- #include <signal.h>
-
- system(s)
- char *s;
- {
- int status, pid, w;
- register int (*istat)(), (*qstat)();
-
- if ((pid = fork()) == 0) {
- execl("/bin/sh", "sh", "-c", 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);
- }
-