xref: /titanic_44/usr/src/lib/libast/common/comp/system.c (revision 25c6ff4b77fcddf4097ce78a8277275ca603b46c)
1  /***********************************************************************
2  *                                                                      *
3  *               This software is part of the ast package               *
4  *           Copyright (c) 1985-2007 AT&T Knowledge Ventures            *
5  *                      and is licensed under the                       *
6  *                  Common Public License, Version 1.0                  *
7  *                      by AT&T Knowledge Ventures                      *
8  *                                                                      *
9  *                A copy of the License is available at                 *
10  *            http://www.opensource.org/licenses/cpl1.0.txt             *
11  *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12  *                                                                      *
13  *              Information and Software Systems Research               *
14  *                            AT&T Research                             *
15  *                           Florham Park NJ                            *
16  *                                                                      *
17  *                 Glenn Fowler <gsf@research.att.com>                  *
18  *                  David Korn <dgk@research.att.com>                   *
19  *                   Phong Vo <kpv@research.att.com>                    *
20  *                                                                      *
21  ***********************************************************************/
22  #pragma prototyped
23  /*
24   * ast library system(3)
25   */
26  
27  #define system		______system
28  
29  #define _STDLIB_H_	1	/* uwin workaround */
30  
31  #include <ast.h>
32  #include <proc.h>
33  
34  #undef	system
35  
36  #undef	_def_map_ast
37  #include <ast_map.h>
38  
39  #if defined(__EXPORT__)
40  #define extern	__EXPORT__
41  #endif
42  
43  extern int
44  system(const char* cmd)
45  {
46  	char*	sh[4];
47  
48  	if (!cmd)
49  		return !eaccess(pathshell(), X_OK);
50  	sh[0] = "sh";
51  	sh[1] = "-c";
52  	sh[2] = (char*)cmd;
53  	sh[3] = 0;
54  	return procrun(NiL, sh);
55  }
56