/* FUNCTION <>---execute command string INDEX system INDEX _system_r ANSI_SYNOPSIS #include int system(char *<[s]>); int _system_r(void *<[reent]>, char *<[s]>); TRAD_SYNOPSIS #include int system(<[s]>) char *<[s]>; int _system_r(<[reent]>, <[s]>) char *<[reent]>; char *<[s]>; DESCRIPTION Use <> to pass a command string <<*<[s]>>> to <> on your system, and wait for it to finish executing. Use ``<>'' to test whether your system has <> available. The alternate function <<_system_r>> is a reentrant version. The extra argument <[reent]> is a pointer to a reentrancy structure. RETURNS <> returns a non-zero value if <> is available, and <<0>> if it is not. With a command argument, the result of <> is the exit status returned by <>. PORTABILITY ANSI C requires <>, but leaves the nature and effects of a command processor undefined. ANSI C does, however, specify that <> return zero or nonzero to report on the existence of a command processor. POSIX.2 requires <>, and requires that it invoke a <>. Where <> is found is left unspecified. Supporting OS subroutines required: <<_exit>>, <<_execve>>, <<_fork_r>>, <<_wait_r>>. */ #include <_ansi.h> #include #include #include #include #include <_syslist.h> #include int _DEFUN(_system_r, (ptr, s), struct _reent *ptr _AND _CONST char *s) { if (s == NULL) return 0; errno = ENOSYS; return -1; } #ifndef _REENT_ONLY int _DEFUN(system, (s), _CONST char *s) { return _system_r (_REENT, s); } #endif