|
|
researchv9-SUN3(old)
/* @(#)system.c 4.1 (Berkeley) 12/21/80 */
#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);
} else if(pid < 0)
return(pid);
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);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.