xref: /netbsd-src/lib/libc/stdlib/system.3 (revision 40d6ddde20c73b85ff0506087c6af07d61001f51)
1*40d6dddeSchristos.\"	$NetBSD: system.3,v 1.17 2008/08/27 06:45:02 christos Exp $
26dda330eSthorpej.\"
35f8a6c06Sperry.\" Copyright (c) 1990, 1991, 1993
45f8a6c06Sperry.\"	The Regents of the University of California.  All rights reserved.
561f28255Scgd.\"
661f28255Scgd.\" This code is derived from software contributed to Berkeley by
761f28255Scgd.\" the American National Standards Committee X3, on Information
861f28255Scgd.\" Processing Systems.
961f28255Scgd.\"
1061f28255Scgd.\" Redistribution and use in source and binary forms, with or without
1161f28255Scgd.\" modification, are permitted provided that the following conditions
1261f28255Scgd.\" are met:
1361f28255Scgd.\" 1. Redistributions of source code must retain the above copyright
1461f28255Scgd.\"    notice, this list of conditions and the following disclaimer.
1561f28255Scgd.\" 2. Redistributions in binary form must reproduce the above copyright
1661f28255Scgd.\"    notice, this list of conditions and the following disclaimer in the
1761f28255Scgd.\"    documentation and/or other materials provided with the distribution.
18eb7c1594Sagc.\" 3. Neither the name of the University nor the names of its contributors
1961f28255Scgd.\"    may be used to endorse or promote products derived from this software
2061f28255Scgd.\"    without specific prior written permission.
2161f28255Scgd.\"
2261f28255Scgd.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2361f28255Scgd.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2461f28255Scgd.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2561f28255Scgd.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2661f28255Scgd.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2761f28255Scgd.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2861f28255Scgd.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2961f28255Scgd.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3061f28255Scgd.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3161f28255Scgd.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3261f28255Scgd.\" SUCH DAMAGE.
3361f28255Scgd.\"
345f8a6c06Sperry.\"     from: @(#)system.3	8.1 (Berkeley) 6/4/93
3561f28255Scgd.\"
36e3d3393dSwiz.Dd August 2, 2007
3761f28255Scgd.Dt SYSTEM 3
3861f28255Scgd.Os
3961f28255Scgd.Sh NAME
4061f28255Scgd.Nm system
4161f28255Scgd.Nd pass a command to the shell
42312aca53Sperry.Sh LIBRARY
43312aca53Sperry.Lb libc
4461f28255Scgd.Sh SYNOPSIS
45472351e1Swiz.In stdlib.h
4661f28255Scgd.Ft int
4761f28255Scgd.Fn system "const char *string"
4861f28255Scgd.Sh DESCRIPTION
4961f28255ScgdThe
5061f28255Scgd.Fn system
5161f28255Scgdfunction
5261f28255Scgdhands the argument
5361f28255Scgd.Fa string
5461f28255Scgdto the command interpreter
5561f28255Scgd.Xr sh 1 .
5667f03441SjtcThe calling process waits for the shell to finish executing the command,
5761f28255Scgdignoring
5861f28255Scgd.Dv SIGINT
5961f28255Scgdand
6061f28255Scgd.Dv SIGQUIT ,
6161f28255Scgdand blocking
6261f28255Scgd.Dv SIGCHLD .
6361f28255Scgd.Pp
6461f28255ScgdIf
6561f28255Scgd.Fa string
6661f28255Scgdis a
6761f28255Scgd.Dv NULL
6861f28255Scgdpointer,
6961f28255Scgd.Fn system
70*40d6dddeSchristoswill return non-zero, if the command interpreter is available, or zero if none
71*40d6dddeSchristosis available.
7267f03441SjtcOtherwise,
7361f28255Scgd.Fn system
7467f03441Sjtcreturns the termination status of the shell in the format specified by
75768025b9Spk.Xr waitpid 2 .
769c20f740Sjtc.Sh RETURN VALUES
7767f03441SjtcIf a child process cannot be created, or the termination status of
7867f03441Sjtcthe shell cannot be obtained,
7967f03441Sjtc.Fn system
8067f03441Sjtcreturns -1 and sets
8167f03441Sjtc.Va errno
8267f03441Sjtcto indicate the error.
8367f03441SjtcIf execution of the shell fails,
8467f03441Sjtc.Fn system
8567f03441Sjtcreturns the termination status for a program that terminates with a call of
8667f03441Sjtc.Fn exit 127 .
8761f28255Scgd.Sh SEE ALSO
8861f28255Scgd.Xr sh 1 ,
8961f28255Scgd.Xr execve 2 ,
90c34d1a35Sjtc.Xr waitpid 2 ,
91e3d3393dSwiz.Xr popen 3 ,
92e3d3393dSwiz.Xr shquote 3
9361f28255Scgd.Sh STANDARDS
9461f28255ScgdThe
9561f28255Scgd.Fn system
9661f28255Scgdfunction
9761f28255Scgdconforms to
9867f03441Sjtc.St -ansiC
9967f03441Sjtcand
100beee4cf8Stron.St -p1003.2-92 .
101673cbedcSyamt.Sh CAVEATS
102673cbedcSyamtNever supply the
103673cbedcSyamt.Fn system
104673cbedcSyamtfunction with a command containing any part of an unsanitized user-supplied
105673cbedcSyamtstring.
106673cbedcSyamtShell meta-characters present will be honored by the
107673cbedcSyamt.Xr sh 1
108673cbedcSyamtcommand interpreter.
109