Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 1abfe597bc89458ccaa645cd148862bb > files > 674

ocaml-ocamlnet-doc-3.7.3-3.mga4.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Shell_uq.html">
<link rel="next" href="Shell_intro.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html">
<link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html">
<link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Uq_io" rel="Chapter" href="Uq_io.html">
<link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html">
<link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html">
<link title="Uq_mt" rel="Chapter" href="Uq_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Equeue_howto" rel="Chapter" href="Equeue_howto.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Https_client" rel="Chapter" href="Https_client.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html">
<link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html">
<link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Http_fs" rel="Chapter" href="Http_fs.html">
<link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html">
<link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html">
<link title="Netgssapi" rel="Chapter" href="Netgssapi.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html">
<link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html">
<link title="Netmcore" rel="Chapter" href="Netmcore.html">
<link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html">
<link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html">
<link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html">
<link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html">
<link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html">
<link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html">
<link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html">
<link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html">
<link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html">
<link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html">
<link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html">
<link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html">
<link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html">
<link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html">
<link title="Netmcore_basics" rel="Chapter" href="Netmcore_basics.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html">
<link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html">
<link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html">
<link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html">
<link title="Netplex_mbox" rel="Chapter" href="Netplex_mbox.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html">
<link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html">
<link title="Netfs" rel="Chapter" href="Netfs.html">
<link title="Netglob" rel="Chapter" href="Netglob.html">
<link title="Netauth" rel="Chapter" href="Netauth.html">
<link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html">
<link title="Netnumber" rel="Chapter" href="Netnumber.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Netcompression" rel="Chapter" href="Netcompression.html">
<link title="Netunichar" rel="Chapter" href="Netunichar.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html">
<link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html">
<link title="Netlog" rel="Chapter" href="Netlog.html">
<link title="Netexn" rel="Chapter" href="Netexn.html">
<link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html">
<link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html">
<link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html">
<link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html">
<link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html">
<link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html">
<link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html">
<link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html">
<link title="Netsys_types" rel="Chapter" href="Netsys_types.html">
<link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html">
<link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html">
<link title="Netsys_sem" rel="Chapter" href="Netsys_sem.html">
<link title="Netsys_pmanage" rel="Chapter" href="Netsys_pmanage.html">
<link title="Netgzip" rel="Chapter" href="Netgzip.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_util" rel="Chapter" href="Rpc_util.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html">
<link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_fs" rel="Chapter" href="Shell_fs.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html">
<link title="Intro" rel="Chapter" href="Intro.html">
<link title="Platform" rel="Chapter" href="Platform.html">
<link title="Foreword" rel="Chapter" href="Foreword.html">
<link title="Ipv6" rel="Chapter" href="Ipv6.html">
<link title="Regexp" rel="Chapter" href="Regexp.html"><link title="Utility functions for developing other implementations of 
    shell_stream_fs" rel="Section" href="#2_Utilityfunctionsfordevelopingotherimplementationsofshellstreamfs">
<title>Ocamlnet 3 Reference Manual : Shell_fs</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Shell_uq.html" title="Shell_uq">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Shell_intro.html" title="Shell_intro">Next</a>
</div>
<h1>Module <a href="type_Shell_fs.html">Shell_fs</a></h1>
<pre><span class="keyword">module</span> Shell_fs: <code class="code">sig</code> <a href="Shell_fs.html">..</a> <code class="code">end</code></pre><div class="info">
Shell filesystem<br>
</div>
<hr width="100%">
<br>
This module emulates a filesystem by submitting shell commands.
    For example, a directory listing is retrieved via the <code class="code">ls</code>
    utility instead of opening the directory directly. This also
    works when logging in to a remote machine, e.g. via <code class="code">ssh</code>.
<p>

    The following standard POSIX commands are used:<ul>
<li><code class="code">dd</code> with options <code class="code">if</code>, <code class="code">of</code>, <code class="code">bs</code>, <code class="code">skip</code>, <code class="code">conv=notrunc</code>, 
      and optionally <code class="code">excl</code> (the latter is a GNU extension)</li>
<li><code class="code">test</code> with options <code class="code">-d</code>, <code class="code">-e</code>, <code class="code">-f</code>, <code class="code">-r</code>, <code class="code">-s</code>, <code class="code">-w</code>, <code class="code">-x</code></li>
<li><code class="code">ls</code> with options <code class="code">-1</code>, <code class="code">-n</code>, <code class="code">-d</code>, <code class="code">-a</code>, <code class="code">-L</code></li>
<li><code class="code">rm</code> with options <code class="code">-r</code> and <code class="code">-f</code></li>
<li><code class="code">mv</code> with option <code class="code">-f</code></li>
<li><code class="code">ln</code> with option <code class="code">-s</code></li>
<li><code class="code">mkdir</code> with options <code class="code">-p</code></li>
<li><code class="code">rmdir</code></li>
<li><code class="code">cp</code> with option <code class="code">-p</code></li>
</ul>

    In addition to this, the commands may be embedded in one-line shell
    scripts.
<p>

    Filenames with leading minus chars are not supported.
<p>

    Error reporting is less accurate than for a local filesystem.
<p>

    <b>Example.</b> List a directory on a remote system:
<p>

    <pre class="codepre"><code class="code">      let fs = 
        Shell_fs.shell_fs 
          (Shell_fs.ssh_interpreter ~host:"moon" ())
      let files =
        fs # readdir [] "/this/is/a/directory/on/moon"
    </code></pre><br>
<pre><code><span id="TYPEcommand_context"><span class="keyword">type</span> <code class="type"></code>command_context</span> = {</code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTcommand_context.sfs_command">sfs_command</span>&nbsp;:<code class="type">string</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The command line</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTcommand_context.sfs_stdin">sfs_stdin</span>&nbsp;:<code class="type"><a href="Shell.html#TYPEproducer">Shell.producer</a></code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >stdin from here</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTcommand_context.sfs_stdout">sfs_stdout</span>&nbsp;:<code class="type"><a href="Shell.html#TYPEconsumer">Shell.consumer</a></code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >stdout goes here</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTcommand_context.sfs_stderr">sfs_stderr</span>&nbsp;:<code class="type"><a href="Shell.html#TYPEconsumer">Shell.consumer</a></code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >stderr goes here</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code>&nbsp;&nbsp;</code></td>
<td align="left" valign="top" >
<code><span class="keyword">mutable&nbsp;</span><span id="TYPEELTcommand_context.sfs_status">sfs_status</span>&nbsp;:<code class="type">Unix.process_status option</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The exit code is put here</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr></table>
}


<pre><span id="TYPEcommand_interpreter"><span class="keyword">type</span> <code class="type"></code>command_interpreter</span> </pre>
<div class="info">
The interpreter runs the command, and fills in <code class="code">sfs_status</code><br>
</div>

<pre><span id="VALlocal_interpreter"><span class="keyword">val</span> local_interpreter</span> : <code class="type">unit -> <a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a></code></pre><div class="info">
Executes commands on the local machine<br>
</div>
<pre><span id="VALcmd_interpreter"><span class="keyword">val</span> cmd_interpreter</span> : <code class="type">(<a href="Shell_fs.html#TYPEcommand_context">command_context</a> -> <a href="Shell_sys.html#TYPEcommand">Shell_sys.command</a> list) -><br>       <a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a></code></pre><div class="info">
Creates a command interpreter from a function that creates the
      real command (as pipeline) to execute<br>
</div>
<pre><span id="VALssh_interpreter"><span class="keyword">val</span> ssh_interpreter</span> : <code class="type">?options:string list -><br>       ?user:string -> host:string -> unit -> <a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a></code></pre><div class="info">
Executes commands via ssh on the machine <code class="code">host</code> as <code class="code">user</code> (defaults
      to current user). <code class="code">options</code> are further command-line options.
      By default, only <code class="code">-o BatchMode yes</code> is passed.<br>
</div>
<pre><span id="TYPEshell_stream_fs"><span class="keyword">class type</span> <a href="Shell_fs.shell_stream_fs-c.html">shell_stream_fs</a></span> = <code class="code">object</code> <a href="Shell_fs.shell_stream_fs-c.html">..</a> <code class="code">end</code></pre><pre><span name="TYPEshell_fs"><span class="keyword">class</span> <a href="Shell_fs.shell_fs-c.html">shell_fs</a></span> : <code class="type">?encoding:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -> ?root:string -> ?dd_has_excl:bool -> ?tmp_directory:string -> ?tmp_prefix:string -> <a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -> </code><code class="type"><a href="Shell_fs.shell_stream_fs-c.html">shell_stream_fs</a></code></pre><pre><span id="VALshell_fs"><span class="keyword">val</span> shell_fs</span> : <code class="type">?encoding:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -><br>       ?root:string -><br>       ?dd_has_excl:bool -><br>       ?tmp_directory:string -><br>       ?tmp_prefix:string -><br>       <a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -> <a href="Shell_fs.shell_stream_fs-c.html">shell_stream_fs</a></code></pre><div class="info">
The shell filesystem.
<p>
<ul>
<li><code class="code">encoding</code>: the assumed character encoding of the filenames.
        <code class="code">None</code> by default.</li>
<li><code class="code">root</code>: the root of the file tree that is accessed. This can
        be an absolute path, or a relative path. </li>
<li><code class="code">dd_has_excl</code>: whether the <code class="code">dd</code> command support "conv=excl".
        Default is <code class="code">false</code>; this is a GNU extension.</li>
<li><code class="code">tmp_directory</code> and <code class="code">tmp_prefix</code> are only meaningful for
        the <code class="code">write_file</code> method which creates a temporary file.
        See <a href="Netchannels.html#VALmake_temporary_file"><code class="code">Netchannels.make_temporary_file</code></a> for more information.</li>
</ul>
<br>
</div>
<br>
<h2 id="2_Utilityfunctionsfordevelopingotherimplementationsofshellstreamfs">Utility functions for developing other implementations of 
    <code class="code">shell_stream_fs</code></h2><br>
<pre><span id="VALexecute"><span class="keyword">val</span> execute</span> : <code class="type"><a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -> <a href="Shell_fs.html#TYPEcommand_context">command_context</a> -> unit</code></pre><div class="info">
Starts this command. It is not waited until the command is finished.
      One can either call <code class="code">wait</code> for this, or one of the adapter
      functions below.
<p>

      One can only start one command at a time.<br>
</div>
<pre><span id="VALwait"><span class="keyword">val</span> wait</span> : <code class="type"><a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -> unit</code></pre><div class="info">
Waits until the running command is finished<br>
</div>
<pre><span id="VALoutput_stream_adapter"><span class="keyword">val</span> output_stream_adapter</span> : <code class="type">ci:<a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -><br>       close_in:(unit -> unit) -><br>       skip:int64 -> <a href="Shell.html#TYPEconsumer">Shell.consumer</a> * <a href="Netchannels.in_obj_channel-c.html">Netchannels.in_obj_channel</a></code></pre><div class="info">
Arranges that the output of a shell command is made available as
      an <code class="code">in_obj_channel</code>:
<p>

      <pre class="codepre"><code class="code"> let (c, ch) = output_stream_adapter ~ci ~close_in ~skip </code></pre>
<p>

      The consumer <code class="code">p</code> can be used in a <code class="code">command_context</code> for either
      <code class="code">sfs_stdout</code> or <code class="code">sfs_stderr</code>. The channel <code class="code">ch</code> is an input
      channel, and when reading from it will return the bytes of
      stdout or stderr.
<p>

      <code class="code">close_in</code> is called as post-hook when the <code class="code">close_in</code> method of
      <code class="code">ch</code> is called. 
<p>

      <code class="code">skip</code> bytes of stdout/stderr are skipped at the beginning of the
      stream.<br>
</div>
<pre><span id="VALinput_stream_adapter"><span class="keyword">val</span> input_stream_adapter</span> : <code class="type">ci:<a href="Shell_fs.html#TYPEcommand_interpreter">command_interpreter</a> -><br>       close_out:(unit -> unit) -> <a href="Shell.html#TYPEproducer">Shell.producer</a> * <a href="Netchannels.out_obj_channel-c.html">Netchannels.out_obj_channel</a></code></pre><div class="info">
Arranges that the input of a shell command is made available as
      an <code class="code">out_obj_channel</code>:
<p>

      <pre class="codepre"><code class="code"> let (p, ch) = input_stream_adapter ~ci ~close_in </code></pre>
<p>

      The producer <code class="code">p</code> can be used in a <code class="code">command_context</code> for 
      <code class="code">sfs_stdin</code>. The channel <code class="code">ch</code> is an output
      channel, and bytes written to it will appear in stdin of the
      executed command.
<p>

      <code class="code">close_out</code> is called as post-hook when the <code class="code">close_out</code> method of
      <code class="code">ch</code> is called.<br>
</div>
</body></html>