186 lines
4.7 KiB
HTML
186 lines
4.7 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
||
|
<meta http-equiv="Content-Type" content=
|
||
|
"text/html; charset=utf-8">
|
||
|
<title>QzshCheckShellCommand() - Find QSH Command</title>
|
||
|
<LINK rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
||
|
</HEAD>
|
||
|
<body bgcolor="#FFFFFF">
|
||
|
<!-- Java sync-link -->
|
||
|
<SCRIPT LANGUAGE="Javascript" SRC="../rzahg/synch.js" TYPE="text/javascript"></SCRIPT>
|
||
|
|
||
|
|
||
|
|
||
|
<h2>QzshCheckShellCommand() - Find QSH Command</h2>
|
||
|
|
||
|
<table border cellpadding="10" width="100%">
|
||
|
<tr>
|
||
|
<td>Syntax
|
||
|
|
||
|
<pre>
|
||
|
#include <qshell.h>
|
||
|
|
||
|
int QzshCheckShellCommand( const char <em>*command</em>, const char <em>*path</em> );
|
||
|
</pre>
|
||
|
|
||
|
<p><br>
|
||
|
Threadsafe: Yes</p>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>The <strong>QzshCheckShellCommand()</strong> function finds the
|
||
|
specified shell command by searching:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>for a built-in utility, then</li>
|
||
|
|
||
|
<li>in each directory in the list specified by <em>path</em> or the
|
||
|
<strong>PATH</strong> environment variable in turn.</li>
|
||
|
</ul>
|
||
|
|
||
|
<p>An application can use <strong>QzshCheckShellCommand()</strong>
|
||
|
to verify that <em>command</em> exists and the user has authority
|
||
|
to <em>command</em> before running it.
|
||
|
|
||
|
<p><strong>Parameters</strong></p>
|
||
|
|
||
|
<p><em>*command</em><br>
|
||
|
(Input) Pointer to null-terminated string that contains the shell
|
||
|
command to find.</p>
|
||
|
|
||
|
<p><em>*path</em><br>
|
||
|
(Input) Pointer to null-terminated string that contains a colon
|
||
|
delimited list of directories to search. If this parameter is NULL,
|
||
|
<strong>QzshCheckShellCommand()</strong> uses the value of the
|
||
|
<strong>PATH</strong> environment variable.
|
||
|
|
||
|
<p><strong>Authorities</strong></p>
|
||
|
|
||
|
<p>When command is an executable file, the user must have the
|
||
|
following authorities.</p>
|
||
|
|
||
|
<table border cellpadding="5" width="100%">
|
||
|
<tr>
|
||
|
<th>Object Referred To</th>
|
||
|
<th>Authority Required</th>
|
||
|
<th>errno</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td width="60%">Each directory in the path name preceding the executable
|
||
|
file</td>
|
||
|
<td width="20%">*X</td>
|
||
|
<td width="20%">EACCES</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td>Executable file</td>
|
||
|
<td>*X</td>
|
||
|
<td>EACCES</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td>If executable file is a shell script</td>
|
||
|
<td>*RX</td>
|
||
|
<td>EACCES</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><strong>Return value</strong></p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>0</strong></dt>
|
||
|
|
||
|
<dd><strong>QzshCheckShellCommand()</strong> was successful. The
|
||
|
<em>command</em> was found in the current environment.<p></dd>
|
||
|
|
||
|
<dt><strong>-1</strong></dt>
|
||
|
|
||
|
<dd><strong>Qp0zCheckShellCommand()</strong> was not successful.
|
||
|
The <em>errno</em> value is set to indicate the error.<p></dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Error conditions</strong></p>
|
||
|
|
||
|
<p>If <strong>QzshCheckShellCommand()</strong> is not successful,
|
||
|
<em>errno</em> typically indicates one of the following errors. Under
|
||
|
some conditions, <em>errno</em> could indicate an error other than
|
||
|
those listed here.</p>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>[EACCES]</strong></dt>
|
||
|
|
||
|
<dd>Permission denied.<p></dd>
|
||
|
|
||
|
<dd>An attempt was made to access an object in a way forbidden by
|
||
|
its object access permissions.<p></dd>
|
||
|
|
||
|
<dd>The thread does not have access to the specified file,
|
||
|
directory, component, or path.<p></dd>
|
||
|
|
||
|
<dt><strong>[EFAULT]</strong></dt>
|
||
|
|
||
|
<dd>The address used for an argument is not correct.<p></dd>
|
||
|
|
||
|
<dd>In attempting to use an argument in a call, the system detected
|
||
|
an address that is not valid.<p></dd>
|
||
|
|
||
|
<dd>While attempting to access a parameter passed to this function,
|
||
|
the system detected an address that is not valid.<p></dd>
|
||
|
|
||
|
<dt><strong>[EINVAL]</strong></dt>
|
||
|
|
||
|
<dd>The value specified for the argument is not correct.<p></dd>
|
||
|
|
||
|
<dd>A function was passed incorrect argument values, or an
|
||
|
operation was attempted on an object and the operation specified is
|
||
|
not supported for that type of object.<p></dd>
|
||
|
|
||
|
<dt><strong>[ENOMEM]</strong></dt>
|
||
|
|
||
|
<dd>Storage allocation request failed.<p></dd>
|
||
|
|
||
|
<dd>A function needed to allocate storage, but no storage is
|
||
|
available.<p></dd>
|
||
|
|
||
|
<dd>There is not enough memory to perform the requested
|
||
|
function.<p></dd>
|
||
|
|
||
|
<dt><strong>[ENOENT]</strong></dt>
|
||
|
|
||
|
<dd>No such path or directory.<p></dd>
|
||
|
|
||
|
<dd>The directory or component of the path name specified does not
|
||
|
exist.<p></dd>
|
||
|
|
||
|
<dd>A named file or directory does not exist or is an empty
|
||
|
string.<p></dd>
|
||
|
|
||
|
<dt><strong>[EUNKNOWN]</strong></dt>
|
||
|
|
||
|
<dd>Unknown system state.<p></dd>
|
||
|
|
||
|
<dd>The operation failed because of an unknown system state. See
|
||
|
any messages in the job log and correct any errors that are
|
||
|
indicated. Then retry the operation.<p></dd>
|
||
|
</dl>
|
||
|
|
||
|
<p><strong>Related information</strong></p>
|
||
|
|
||
|
<ul>
|
||
|
<li><a href="qzshsyst.htm"><strong>QzshSystem()</strong> - Run a
|
||
|
QSH command</a></li>
|
||
|
</ul>
|
||
|
|
||
|
<p><strong>Example: Using the QzshCheckShellCommand()
|
||
|
function</strong></p>
|
||
|
|
||
|
<p>For an example of using this function, see the <a href=
|
||
|
"qzshsyst.htm"><strong>QzshSystem()</strong></a> function.</p>
|
||
|
</body>
|
||
|
</html>
|
||
|
|