1*2fe8fb19SBen Gras.\" $NetBSD: system.3,v 1.17 2008/08/27 06:45:02 christos Exp $ 2*2fe8fb19SBen Gras.\" 3*2fe8fb19SBen Gras.\" Copyright (c) 1990, 1991, 1993 4*2fe8fb19SBen Gras.\" The Regents of the University of California. All rights reserved. 5*2fe8fb19SBen Gras.\" 6*2fe8fb19SBen Gras.\" This code is derived from software contributed to Berkeley by 7*2fe8fb19SBen Gras.\" the American National Standards Committee X3, on Information 8*2fe8fb19SBen Gras.\" Processing Systems. 9*2fe8fb19SBen Gras.\" 10*2fe8fb19SBen Gras.\" Redistribution and use in source and binary forms, with or without 11*2fe8fb19SBen Gras.\" modification, are permitted provided that the following conditions 12*2fe8fb19SBen Gras.\" are met: 13*2fe8fb19SBen Gras.\" 1. Redistributions of source code must retain the above copyright 14*2fe8fb19SBen Gras.\" notice, this list of conditions and the following disclaimer. 15*2fe8fb19SBen Gras.\" 2. Redistributions in binary form must reproduce the above copyright 16*2fe8fb19SBen Gras.\" notice, this list of conditions and the following disclaimer in the 17*2fe8fb19SBen Gras.\" documentation and/or other materials provided with the distribution. 18*2fe8fb19SBen Gras.\" 3. Neither the name of the University nor the names of its contributors 19*2fe8fb19SBen Gras.\" may be used to endorse or promote products derived from this software 20*2fe8fb19SBen Gras.\" without specific prior written permission. 21*2fe8fb19SBen Gras.\" 22*2fe8fb19SBen Gras.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23*2fe8fb19SBen Gras.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24*2fe8fb19SBen Gras.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25*2fe8fb19SBen Gras.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26*2fe8fb19SBen Gras.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27*2fe8fb19SBen Gras.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28*2fe8fb19SBen Gras.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29*2fe8fb19SBen Gras.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*2fe8fb19SBen Gras.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31*2fe8fb19SBen Gras.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32*2fe8fb19SBen Gras.\" SUCH DAMAGE. 33*2fe8fb19SBen Gras.\" 34*2fe8fb19SBen Gras.\" from: @(#)system.3 8.1 (Berkeley) 6/4/93 35*2fe8fb19SBen Gras.\" 36*2fe8fb19SBen Gras.Dd August 2, 2007 37*2fe8fb19SBen Gras.Dt SYSTEM 3 38*2fe8fb19SBen Gras.Os 39*2fe8fb19SBen Gras.Sh NAME 40*2fe8fb19SBen Gras.Nm system 41*2fe8fb19SBen Gras.Nd pass a command to the shell 42*2fe8fb19SBen Gras.Sh LIBRARY 43*2fe8fb19SBen Gras.Lb libc 44*2fe8fb19SBen Gras.Sh SYNOPSIS 45*2fe8fb19SBen Gras.In stdlib.h 46*2fe8fb19SBen Gras.Ft int 47*2fe8fb19SBen Gras.Fn system "const char *string" 48*2fe8fb19SBen Gras.Sh DESCRIPTION 49*2fe8fb19SBen GrasThe 50*2fe8fb19SBen Gras.Fn system 51*2fe8fb19SBen Grasfunction 52*2fe8fb19SBen Grashands the argument 53*2fe8fb19SBen Gras.Fa string 54*2fe8fb19SBen Grasto the command interpreter 55*2fe8fb19SBen Gras.Xr sh 1 . 56*2fe8fb19SBen GrasThe calling process waits for the shell to finish executing the command, 57*2fe8fb19SBen Grasignoring 58*2fe8fb19SBen Gras.Dv SIGINT 59*2fe8fb19SBen Grasand 60*2fe8fb19SBen Gras.Dv SIGQUIT , 61*2fe8fb19SBen Grasand blocking 62*2fe8fb19SBen Gras.Dv SIGCHLD . 63*2fe8fb19SBen Gras.Pp 64*2fe8fb19SBen GrasIf 65*2fe8fb19SBen Gras.Fa string 66*2fe8fb19SBen Grasis a 67*2fe8fb19SBen Gras.Dv NULL 68*2fe8fb19SBen Graspointer, 69*2fe8fb19SBen Gras.Fn system 70*2fe8fb19SBen Graswill return non-zero, if the command interpreter is available, or zero if none 71*2fe8fb19SBen Grasis available. 72*2fe8fb19SBen GrasOtherwise, 73*2fe8fb19SBen Gras.Fn system 74*2fe8fb19SBen Grasreturns the termination status of the shell in the format specified by 75*2fe8fb19SBen Gras.Xr waitpid 2 . 76*2fe8fb19SBen Gras.Sh RETURN VALUES 77*2fe8fb19SBen GrasIf a child process cannot be created, or the termination status of 78*2fe8fb19SBen Grasthe shell cannot be obtained, 79*2fe8fb19SBen Gras.Fn system 80*2fe8fb19SBen Grasreturns -1 and sets 81*2fe8fb19SBen Gras.Va errno 82*2fe8fb19SBen Grasto indicate the error. 83*2fe8fb19SBen GrasIf execution of the shell fails, 84*2fe8fb19SBen Gras.Fn system 85*2fe8fb19SBen Grasreturns the termination status for a program that terminates with a call of 86*2fe8fb19SBen Gras.Fn exit 127 . 87*2fe8fb19SBen Gras.Sh SEE ALSO 88*2fe8fb19SBen Gras.Xr sh 1 , 89*2fe8fb19SBen Gras.Xr execve 2 , 90*2fe8fb19SBen Gras.Xr waitpid 2 , 91*2fe8fb19SBen Gras.Xr popen 3 , 92*2fe8fb19SBen Gras.Xr shquote 3 93*2fe8fb19SBen Gras.Sh STANDARDS 94*2fe8fb19SBen GrasThe 95*2fe8fb19SBen Gras.Fn system 96*2fe8fb19SBen Grasfunction 97*2fe8fb19SBen Grasconforms to 98*2fe8fb19SBen Gras.St -ansiC 99*2fe8fb19SBen Grasand 100*2fe8fb19SBen Gras.St -p1003.2-92 . 101*2fe8fb19SBen Gras.Sh CAVEATS 102*2fe8fb19SBen GrasNever supply the 103*2fe8fb19SBen Gras.Fn system 104*2fe8fb19SBen Grasfunction with a command containing any part of an unsanitized user-supplied 105*2fe8fb19SBen Grasstring. 106*2fe8fb19SBen GrasShell meta-characters present will be honored by the 107*2fe8fb19SBen Gras.Xr sh 1 108*2fe8fb19SBen Grascommand interpreter. 109