Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 535a7a10fe62254ee9ca7e6375f081a9 > files > 411

ocaml-ocamlnet-2.2.7-4mdv2008.1.x86_64.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="Neturl_tut.html">
<link rel="next" href="Netpop.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="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.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" 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="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_intro" rel="Chapter" href="Nethttpd_intro.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_intro" rel="Chapter" href="Netplex_intro.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="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.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="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="Netsys" rel="Chapter" href="Netsys.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="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.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_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.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_mt" rel="Chapter" href="Shell_mt.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><link title="Helper functions" rel="Section" href="#1_Helperfunctions">
<link title="Standard POSIX functions" rel="Section" href="#1_StandardPOSIXfunctions">
<link title="POSIX Shared Memory" rel="Section" href="#1_POSIXSharedMemory">
<title>Ocamlnet 2 Reference Manual : Netsys</title>
</head>
<body>
<div class="navbar"><a href="Neturl_tut.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Netpop.html">Next</a>
</div>
<center><h1>Module <a href="type_Netsys.html">Netsys</a></h1></center>
<br>
<pre><span class="keyword">module</span> Netsys: <code class="code">sig</code> <a href="Netsys.html">..</a> <code class="code">end</code></pre>Some POSIX system calls missing in the <code class="code">Unix</code> module<br>
<hr width="100%">
<br>
<a name="1_Helperfunctions"></a>
<h1>Helper functions</h1><br>
<pre><span class="keyword">val</span> <a name="VALrestart"></a>restart : <code class="type">('a -> 'b) -> 'a -> 'b</code></pre><div class="info">
<code class="code">restart f arg</code> calls <code class="code">f arg</code>, and restarts this call if the
 exception <code class="code">Unix_error(EINTR,_,_)</code> is caught.
<p>

 Note that there are some cases where this handling of <code class="code">EINTR</code> is
 not sufficient:<ul>
<li>Functions that have a timeout argument like <code class="code">Unix.select</code>: When
   <code class="code">EINTR</code> is caught the timeout should be adjusted.</li>
<li><code class="code">Unix.connect</code> with a blocking descriptor because this is not
   well-enough specified by POSIX</li>
</ul>
<br>
</div>
<pre><span class="keyword">val</span> <a name="VALrestarting_select"></a>restarting_select : <code class="type">Unix.file_descr list -><br>       Unix.file_descr list -><br>       Unix.file_descr list -><br>       float -> Unix.file_descr list * Unix.file_descr list * Unix.file_descr list</code></pre><div class="info">
A wrapper around <code class="code">Unix.select</code> that handles the <code class="code">EINTR</code> condition<br>
</div>
<pre><span class="keyword">val</span> <a name="VALreally_write"></a>really_write : <code class="type">Unix.file_descr -> string -> int -> int -> unit</code></pre><div class="info">
<code class="code">really_write fd s pos len</code>: Writes exactly the <code class="code">len</code> bytes from <code class="code">s</code>
 to <code class="code">fd</code> starting at <code class="code">pos</code>. The conditions <code class="code">EINTR</code>, <code class="code">EAGAIN</code> and
 <code class="code">EWOULDBLOCK</code> are handled.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALblocking_read"></a>blocking_read : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">let p = blocking_read fd s pos len</code>: Reads exactly <code class="code">p</code> bytes from <code class="code">fd</code>
 and stores them in <code class="code">s</code> starting at <code class="code">pos</code> where <code class="code">p</code> is the minimum
 of <code class="code">len</code> and the number of bytes that are available on <code class="code">fd</code> until
 the end of the file. If the function is called with <code class="code">len&gt;0</code> but 
 returns less than <code class="code">len</code> this indicates end of file.
 The conditions <code class="code">EINTR</code>, <code class="code">EAGAIN</code> and <code class="code">EWOULDBLOCK</code> are handled.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALreally_read"></a>really_read : <code class="type">Unix.file_descr -> string -> int -> int -> unit</code></pre><div class="info">
<code class="code">really_read fd s pos len</code>: Reads exactly <code class="code">len</code> bytes from <code class="code">fd</code>
 and stores them in <code class="code">s</code> starting at <code class="code">pos</code>. If the end of file condition
 is seen before <code class="code">len</code> bytes are read, the exception <code class="code">End_of_file</code>
 is raised, and it is unspecified how many bytes have been stored in
 <code class="code">s</code>. The conditions <code class="code">EINTR</code>, <code class="code">EAGAIN</code> and <code class="code">EWOULDBLOCK</code> are handled.<br>
</div>
<br>
<a name="1_StandardPOSIXfunctions"></a>
<h1>Standard POSIX functions</h1><br>
<pre><span class="keyword">val</span> <a name="VALint_of_file_descr"></a>int_of_file_descr : <code class="type">Unix.file_descr -> int</code></pre><div class="info">
Return the file descriptor as integer<br>
</div>
<pre><span class="keyword">val</span> <a name="VALfile_descr_of_int"></a>file_descr_of_int : <code class="type">int -> Unix.file_descr</code></pre><div class="info">
Make a file descriptor from an integer<br>
</div>
<pre><span class="keyword">val</span> <a name="VAL_exit"></a>_exit : <code class="type">int -> unit</code></pre><div class="info">
Exit the program immediately without running the atexit handlers.
 The argument is the exit code, just as for <code class="code">exit</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsysconf_open_max"></a>sysconf_open_max : <code class="type">unit -> int</code></pre><div class="info">
Return the maximum number of open file descriptor per process.
 It is also ensured that for every file descriptor <code class="code">fd</code>:
 <code class="code">fd &lt; sysconf_open_max()</code><br>
</div>
<pre><span class="keyword">val</span> <a name="VALgetpgid"></a>getpgid : <code class="type">int -> int</code></pre><div class="info">
Return the process group ID of the process with the passed PID.
 For the number 0, the process group ID of the current process is
 returned.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALgetpgrp"></a>getpgrp : <code class="type">unit -> int</code></pre><div class="info">
Same as <code class="code">getpgid 0</code>, i.e. returns the process group ID of the
 current process.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsetpgid"></a>setpgid : <code class="type">int -> int -> unit</code></pre><div class="info">
<code class="code">setpgid pid pgid</code>: Set the process group ID of the process <code class="code">pid</code>
 to <code class="code">pgid</code>. If <code class="code">pid = 0</code>, the process group ID of the current process
 is changed. If <code class="code">pgid = 0</code>, as process group ID the process ID of the
 process referenced by <code class="code">pid</code> is used.
<p>

 It is only possible for a process to join a process group if both
 belong to the same session.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsetpgrp"></a>setpgrp : <code class="type">unit -> unit</code></pre><div class="info">
Same as <code class="code">setpgid 0 0</code>: A new process group ID is created, and the
 current process becomes its sole member.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALtcgetpgrp"></a>tcgetpgrp : <code class="type">Unix.file_descr -> int</code></pre><div class="info">
Return the process group ID of the foreground process group of
 the session associated with the file descriptor, which must be
 a tty.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALtcsetpgrp"></a>tcsetpgrp : <code class="type">Unix.file_descr -> int -> unit</code></pre><div class="info">
Sets the foreground process group ID of the session associated
 with the file descriptor, which must be a tty.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALctermid"></a>ctermid : <code class="type">unit -> string</code></pre><div class="info">
Returns the name of the controlling tty of the current process 
 as pathname to a device file<br>
</div>
<pre><span class="keyword">val</span> <a name="VALttyname"></a>ttyname : <code class="type">Unix.file_descr -> string</code></pre><div class="info">
Returns the name of the controlling tty referred to by the
 file descriptor.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALgetsid"></a>getsid : <code class="type">int -> int</code></pre><div class="info">
Returns the session ID of the process with the passed PID.
 For the PID 0, the session ID of the current process is returned.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsetreuid"></a>setreuid : <code class="type">int -> int -> unit</code></pre><div class="info">
Changes both the real and the effective user ID of the current
 process.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsetregid"></a>setregid : <code class="type">int -> int -> unit</code></pre><div class="info">
Changes both the real and the effective group ID of the current
 process.<br>
</div>
<br>
<a name="1_POSIXSharedMemory"></a>
<h1>POSIX Shared Memory</h1><br>
<pre><span class="keyword">val</span> <a name="VALhave_posix_shm"></a>have_posix_shm : <code class="type">unit -> bool</code></pre><div class="info">
Returns whether the OS supports POSIX shared memory<br>
</div>
<br><code><span class="keyword">type</span> <a name="TYPEshm_open_flag"></a><code class="type"></code>shm_open_flag = </code><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SHM_O_RDONLY</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SHM_O_RDWR</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SHM_O_CREAT</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SHM_O_EXCL</span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span class="constructor">SHM_O_TRUNC</span></code></td>

</tr></table>


<pre><span class="keyword">val</span> <a name="VALshm_open"></a>shm_open : <code class="type">string -> <a href="Netsys.html#TYPEshm_open_flag">shm_open_flag</a> list -> int -> Unix.file_descr</code></pre><div class="info">
Opens a shared memory object. The first arg is the name of the
 object. The name must begin with a slash, but there must be no
 further slash in it (e.g. "/sample"). The second arg are the
 open flags. The third arg are the permission bits.
<p>

 The open flags are interpreted as follows:<ul>
<li><code class="code">SHM_O_RDONLY</code>: Open the object for read access</li>
<li><code class="code">SHM_O_RDWR</code>: Open the object for read-write access</li>
<li><code class="code">SHM_O_CREAT</code>: Create the object if it does not exist</li>
<li><code class="code">SHM_O_EXCL</code>: If <code class="code">SHM_O_CREAT</code> was also specified, and a an object
   with the given name already exists, return an error
   (<code class="code">Unix.EEXIST</code>).</li>
<li><code class="code">SHM_O_TRUNC</code>: If the object already exists, truncate it to 
   zero bytes</li>
</ul>

 One of <code class="code">SHM_O_RDONLY</code> or <code class="code">SHM_O_RDWR</code> must be given.
<p>

 On success, the function returns a file descriptor representing the
 object. To access the object, one has to memory-map this file
 (in O'Caml use one of the <code class="code">map_file</code> functions in the <code class="code">Bigarray</code>
 module). Use <code class="code">Unix.ftruncate</code> to resize the object.
<p>

 Note that it is unspecified whether this file pops up somewhere
 in the file system, and if so, where.
<p>

 If a system error occurs, the function raises a <code class="code">Unix.Unix_error</code>
 exception.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALshm_unlink"></a>shm_unlink : <code class="type">string -> unit</code></pre><div class="info">
Unlinks the name for a shared memory object<br>
</div>
</body></html>