home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 4
/
DATAFILE_PDCD4.iso
/
unix
/
unixlib36d
/
src
/
c
/
system
< prev
next >
Wrap
Text File
|
1994-03-08
|
1KB
|
71 lines
#ifdef __STDC__
static char sccs_id[] = "@(#) system.c 1.2 " __DATE__ " HJR";
#else
static char sccs_id[] = "@(#) system.c 1.2 13/6/91 HJR";
#endif
/* system.c (c) Copyright 1990 H.Rogers */
#include <stdlib.h>
#include <string.h>
#include "sys/param.h"
extern int execl (char *,...);
extern int wait (int *);
extern int vfork (void);
extern void _exit (int);
#ifdef __STDC__
int
system (const char *command)
#else
int
system (command)
const char *command;
#endif
{
int w = 0;
if (!command)
return (-1);
switch (vfork ())
{
case -1:
return (-1);
break;
case 0:
{
char *shell, *path;
#ifdef ARCH
if (!(path = getenv ("SHELL")))
{
if (*command == '*')
execl ((char *) command, 0);
else
execl ("*", "", (char *) command, 0);
_exit (1);
}
#else
if (!(path = getenv ("SHELL")))
path = "/bin/sh";
#endif
shell = strrchr (path, '/');
if (shell)
shell++;
else
shell = path;
execl (path, shell, "-c", (char *) command, 0);
_exit (1);
}
break;
default:
wait (&w);
break;
}
return (w >> 8);
}