blob: 918d105a4811dfa8c8cc36ac35a9b2a186153c0a [file] [log] [blame]
<html lang="en">
<head>
<title>system - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="List-of-Supported-Calls.html#List-of-Supported-Calls" title="List of Supported Calls">
<link rel="prev" href="isatty.html#isatty" title="isatty">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.
(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual. Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="system"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="isatty.html#isatty">isatty</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="List-of-Supported-Calls.html#List-of-Supported-Calls">List of Supported Calls</a>
<hr>
</div>
<h5 class="unnumberedsubsubsec">system</h5>
<p><a name="index-system_002c-file_002di_002fo-system-call-2515"></a>
<dl>
<dt>Synopsis:<dd>
<pre class="smallexample"> int system(const char *command);
</pre>
<br><dt>Request:<dd>&lsquo;<samp><span class="samp">Fsystem,</span><var>commandptr</var><span class="samp">/</span><var>len</var></samp>&rsquo;
<br><dt>Return value:<dd>If <var>len</var> is zero, the return value indicates whether a shell is
available. A zero return value indicates a shell is not available.
For non-zero <var>len</var>, the value returned is -1 on error and the
return status of the command otherwise. Only the exit status of the
command is returned, which is extracted from the host's <code>system</code>
return value by calling <code>WEXITSTATUS(retval)</code>. In case
<samp><span class="file">/bin/sh</span></samp> could not be executed, 127 is returned.
<br><dt>Errors:<dd>
<dl>
<dt><code>EINTR</code><dd>The call was interrupted by the user.
</dl>
</dl>
<p><span class="sc">gdb</span> takes over the full task of calling the necessary host calls
to perform the <code>system</code> call. The return value of <code>system</code> on
the host is simplified before it's returned
to the target. Any termination signal information from the child process
is discarded, and the return value consists
entirely of the exit status of the called command.
<p>Due to security concerns, the <code>system</code> call is by default refused
by <span class="sc">gdb</span>. The user has to allow this call explicitly with the
<code>set remote system-call-allowed 1</code> command.
<dl>
<dt><code>set remote system-call-allowed</code><dd><a name="index-set-remote-system_002dcall_002dallowed-2516"></a>Control whether to allow the <code>system</code> calls in the File I/O
protocol for the remote target. The default is zero (disabled).
<br><dt><code>show remote system-call-allowed</code><dd><a name="index-show-remote-system_002dcall_002dallowed-2517"></a>Show whether the <code>system</code> calls are allowed in the File I/O
protocol.
</dl>
</body></html>