Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > 4cb79c6005e82bf8f1625e161f00d595 > files > 11

ocaml-extunix-devel-0.0.5-4.mga3.i586.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="next" href="ExtUnix.All.html">
<link rel="Up" href="ExtUnix.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 modules" rel=Appendix href="index_modules.html">
<link title="ExtUnix" rel="Chapter" href="ExtUnix.html">
<link title="ExtUnixAll" rel="Chapter" href="ExtUnixAll.html">
<link title="ExtUnixSpecific" rel="Chapter" href="ExtUnixSpecific.html"><link title="posix_fadvise" rel="Section" href="#2_posixfadvise">
<link title="posix_fallocate" rel="Section" href="#2_posixfallocate">
<link title="pread" rel="Section" href="#2_pread">
<link title="pwrite" rel="Section" href="#2_pwrite">
<link title="read" rel="Section" href="#2_read">
<link title="write" rel="Section" href="#2_write">
<link title="File operations on large files" rel="Section" href="#2_Fileoperationsonlargefiles">
<link title="ioctl" rel="Section" href="#2_ioctl">
<link title="Miscellaneous" rel="Section" href="#2_Miscellaneous">
<link title="signalfd" rel="Section" href="#2_signalfd">
<link title="POSIX resource operations" rel="Section" href="#2_POSIXresourceoperations">
<link title="Memory management" rel="Section" href="#2_Memorymanagement">
<link title="Time conversion" rel="Section" href="#2_Timeconversion">
<link title="Pseudo terminal management" rel="Section" href="#2_Pseudoterminalmanagement">
<link title="Application self-debugging and diagnostics" rel="Section" href="#2_Applicationselfdebugginganddiagnostics">
<link title="Environment manipulation" rel="Section" href="#2_Environmentmanipulation">
<link title="Temporary directories" rel="Section" href="#2_Temporarydirectories">
<link title="Byte order conversion" rel="Section" href="#2_Byteorderconversion">
<link title="read_credentials " rel="Section" href="#2_readcredentials">
<link title="fexecve " rel="Section" href="#2_fexecve">
<link title="sendmsg / recvmsg " rel="Section" href="#2_sendmsgrecvmsg">
<link title="Bigarray variants" rel="Section" href="#2_Bigarrayvariants">
<link title="Functions to query the signal information structure." rel="Subsection" href="#6_Functionstoquerythesignalinformationstructure">
<title>ExtUnix.Specific</title>
</head>
<body>
<div class="navbar">&nbsp;<a class="up" href="ExtUnix.html" title="ExtUnix">Up</a>
&nbsp;<a class="post" href="ExtUnix.All.html" title="ExtUnix.All">Next</a>
</div>
<h1>Module <a href="type_ExtUnix.Specific.html">ExtUnix.Specific</a></h1>
<pre><span class="keyword">module</span> Specific: <code class="type">ExtUnixSpecific</code></pre><div class="info">
Only functions available on this platform<br>
</div>
<hr width="100%">
<pre><span id="EXCEPTIONNot_available"><span class="keyword">exception</span> Not_available</span> <span class="keyword">of</span> <code class="type">string</code></pre>
<div class="info">
<code class="code">Not_available "func"</code> may be raised by <code class="code">ExtUnix.All.func</code>
    if the wrapped C function is not available on this platform<br>
</div>
<pre><span id="TYPEbuffer"><span class="keyword">type</span> <code class="type"></code>buffer</span> = <code class="type">(int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t</code> </pre>
<div class="info">
type of buffer used by BA submodules<br>
</div>

<pre><span id="TYPEopen_flag"><span class="keyword">type</span> <code class="type"></code>open_flag</span> = <code class="type">Unix.open_flag</code> </pre>

<pre><span id="VALfsync"><span class="keyword">val</span> fsync</span> : <code class="type">Unix.file_descr -> unit</code></pre><pre><span id="VALfdatasync"><span class="keyword">val</span> fdatasync</span> : <code class="type">Unix.file_descr -> unit</code></pre><pre><span id="VALeventfd"><span class="keyword">val</span> eventfd</span> : <code class="type">int -> Unix.file_descr</code></pre><pre><span id="VALeventfd_read"><span class="keyword">val</span> eventfd_read</span> : <code class="type">Unix.file_descr -> int64</code></pre><pre><span id="VALeventfd_write"><span class="keyword">val</span> eventfd_write</span> : <code class="type">Unix.file_descr -> int64 -> unit</code></pre><pre><span id="VALdirfd"><span class="keyword">val</span> dirfd</span> : <code class="type">Unix.dir_handle -> Unix.file_descr</code></pre><pre><code><span id="TYPEstatvfs"><span class="keyword">type</span> <code class="type"></code>statvfs</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="TYPEELTstatvfs.f_bsize">f_bsize</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >file system block size</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="TYPEELTstatvfs.f_blocks">f_blocks</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >size of file system in blocks</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="TYPEELTstatvfs.f_bfree">f_bfree</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >free blocks</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="TYPEELTstatvfs.f_bavail">f_bavail</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >free blocks for unprivileged users</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="TYPEELTstatvfs.f_files">f_files</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >inodes</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="TYPEELTstatvfs.f_ffree">f_ffree</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >free inodes</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="TYPEELTstatvfs.f_favail">f_favail</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >free inodes for unprivileged users</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="TYPEELTstatvfs.f_fsid">f_fsid</span>&nbsp;:<code class="type">int64</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >file system ID</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="TYPEELTstatvfs.f_flag">f_flag</span>&nbsp;:<code class="type">int</code>;</code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >mount flags</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="TYPEELTstatvfs.f_namemax">f_namemax</span>&nbsp;:<code class="type">int</code>;</code></td>

</tr></table>
}


<pre><span id="VALstatvfs"><span class="keyword">val</span> statvfs</span> : <code class="type">string -> <a href="ExtUnixSpecific.html#TYPEstatvfs">statvfs</a></code></pre><div class="info">
maximum filename length<br>
</div>
<pre><span id="VALfstatvfs"><span class="keyword">val</span> fstatvfs</span> : <code class="type">Unix.file_descr -> <a href="ExtUnixSpecific.html#TYPEstatvfs">statvfs</a></code></pre><pre><code><span id="TYPEat_flag"><span class="keyword">type</span> <code class="type"></code>at_flag</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTat_flag.AT_EACCESS"><span class="constructor">AT_EACCESS</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTat_flag.AT_SYMLINK_NOFOLLOW"><span class="constructor">AT_SYMLINK_NOFOLLOW</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTat_flag.AT_REMOVEDIR"><span class="constructor">AT_REMOVEDIR</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTat_flag.AT_SYMLINK_FOLLOW"><span class="constructor">AT_SYMLINK_FOLLOW</span></span></code></td>

</tr></table>


<pre><span id="VALopenat"><span class="keyword">val</span> openat</span> : <code class="type">Unix.file_descr -><br>       string -> <a href="ExtUnixSpecific.html#TYPEopen_flag">open_flag</a> list -> Unix.file_perm -> Unix.file_descr</code></pre><pre><span id="VALfstatat"><span class="keyword">val</span> fstatat</span> : <code class="type">Unix.file_descr -> string -> Unix.stats</code></pre><pre><span id="VALunlinkat"><span class="keyword">val</span> unlinkat</span> : <code class="type">Unix.file_descr -> string -> <a href="ExtUnixSpecific.html#TYPEat_flag">at_flag</a> list -> unit</code></pre><div class="info">
Supported flags : <code class="code">AT_REMOVEDIR</code><br>
</div>
<pre><span id="VALrenameat"><span class="keyword">val</span> renameat</span> : <code class="type">Unix.file_descr -> string -> Unix.file_descr -> string -> unit</code></pre><pre><span id="VALmkdirat"><span class="keyword">val</span> mkdirat</span> : <code class="type">Unix.file_descr -> string -> int -> unit</code></pre><pre><span id="VALlinkat"><span class="keyword">val</span> linkat</span> : <code class="type">Unix.file_descr -><br>       string -> Unix.file_descr -> string -> <a href="ExtUnixSpecific.html#TYPEat_flag">at_flag</a> list -> unit</code></pre><div class="info">
Supported flags : <code class="code">AT_SYMLINK_FOLLOW</code><br>
</div>
<pre><span id="VALsymlinkat"><span class="keyword">val</span> symlinkat</span> : <code class="type">string -> Unix.file_descr -> string -> unit</code></pre><pre><span class="keyword">module</span> <a href="ExtUnixSpecific.Uname.html">Uname</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.Uname.html">..</a> <code class="code">end</code></pre><div class="info">
uname
    <b>Author:</b> Sylvain Le Gall <code class="code">sylvain@le-gall.net</code>
</div>
<pre><span id="VALuname"><span class="keyword">val</span> uname</span> : <code class="type">unit -> <a href="ExtUnixSpecific.Uname.html#TYPEt">Uname.t</a></code></pre><br>
<h2 id="2_posixfadvise">posix_fadvise</h2>
<p>

<b>Author:</b> Sylvain Le Gall<br>
<pre><code><span id="TYPEadvice"><span class="keyword">type</span> <code class="type"></code>advice</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_NORMAL"><span class="constructor">POSIX_FADV_NORMAL</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Indicates that the application has no advice to
                              give about its access pattern for the specified
                              data.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_SEQUENTIAL"><span class="constructor">POSIX_FADV_SEQUENTIAL</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The application expects to access the specified
                              data sequentially.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_RANDOM"><span class="constructor">POSIX_FADV_RANDOM</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The specified data will be accessed in random
                              order.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_NOREUSE"><span class="constructor">POSIX_FADV_NOREUSE</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The specified data will be accessed only once.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_WILLNEED"><span class="constructor">POSIX_FADV_WILLNEED</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >The specified data will be accessed in the near
                              future.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTadvice.POSIX_FADV_DONTNEED"><span class="constructor">POSIX_FADV_DONTNEED</span></span></code></td>

</tr></table>

<div class="info">
access pattern<br>
</div>

<br>
The specified data will not be accessed in the
                              near future.<br>
<pre><span id="VALfadvise"><span class="keyword">val</span> fadvise</span> : <code class="type">Unix.file_descr -> int -> int -> <a href="ExtUnixSpecific.html#TYPEadvice">advice</a> -> unit</code></pre><div class="info">
predeclare an access pattern for file data<br>
</div>
<br>
<h2 id="2_posixfallocate">posix_fallocate</h2><br>
<br>
Allocate disk space for file
<p>

    <b>Author:</b> Sylvain Le Gall<br>
<pre><span id="VALfallocate"><span class="keyword">val</span> fallocate</span> : <code class="type">Unix.file_descr -> int -> int -> unit</code></pre><div class="info">
<code class="code">fallocate fd off len</code> allocates disk space to ensure that subsequent writes
    between <code class="code">off</code> and <code class="code">off + len</code> in <code class="code">fd</code> will not fail because of lack of disk 
    space. The file size is modified if <code class="code">off + len</code> is bigger than the current size.<br>
</div>
<br>
<h2 id="2_pread">pread</h2>
<p>

    <b>Author:</b> Goswin von Brederlow<br>
<pre><span id="VALunsafe_all_pread"><span class="keyword">val</span> unsafe_all_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">all_pread fd off buf ofs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file) into
    the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not changed.
<p>

    <code class="code">all_pread</code> repeats the read operation until all characters have
    been read or an error occurs. Returns less than the number of
    characters requested on EAGAIN, EWOULDBLOCK or End-of-file but
    only ever returns 0 on End-of-file. Continues the read operation
    on EINTR. Raises an Unix.Unix_error exception in all other
    cases.<br>
</div>
<pre><span id="VALall_pread"><span class="keyword">val</span> all_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_single_pread"><span class="keyword">val</span> unsafe_single_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">single_pread fd off buf ifs len</code> reads up to <code class="code">len</code> bytes from
    file descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file)
    into the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not
    changed.
<p>

    <code class="code">single_pread</code> attempts to read only once. Returns the number of
    characters read or raises an Unix.Unix_error exception. Unlike the
    string variant of the same name there is no limit on the number of
    characters read.<br>
</div>
<pre><span id="VALsingle_pread"><span class="keyword">val</span> single_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_pread"><span class="keyword">val</span> unsafe_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">pread fd off buf ofs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file) into
    the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not changed.
<p>

    <code class="code">pread</code> repeats the read operation until all characters have
    been read or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be read before an error occurs. Continues
    the read operation on EINTR. Returns the number of characters
    written in all other cases.<br>
</div>
<pre><span id="VALpread"><span class="keyword">val</span> pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_intr_pread"><span class="keyword">val</span> unsafe_intr_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">intr_pread fd off buf ofs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file) into
    the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not changed.
<p>

    <code class="code">intr_pread</code> repeats the read operation until all characters have
    been read or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be read before an error occurs. Does NOT
    continue on EINTR. Returns the number of characters written in all
    other cases.<br>
</div>
<pre><span id="VALintr_pread"><span class="keyword">val</span> intr_pread</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><br>
<h2 id="2_pwrite">pwrite</h2>
<p>

    <b>Author:</b> Goswin von Brederlow<br>
<pre><span id="VALunsafe_all_pwrite"><span class="keyword">val</span> unsafe_all_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">all_pwrite fd off buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file) into
    the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not changed.
<p>

    <code class="code">all_pwrite</code> repeats the write operation until all characters have
    been written or an error occurs. Returns less than the number of
    characters requested on EAGAIN, EWOULDBLOCK but never 0. Continues
    the write operation on EINTR. Raises an Unix.Unix_error exception
    in all other cases.<br>
</div>
<pre><span id="VALall_pwrite"><span class="keyword">val</span> all_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_single_pwrite"><span class="keyword">val</span> unsafe_single_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">single_pwrite fd off buf ofs len</code> writes up to <code class="code">len</code> bytes from
    file descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file)
    into the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not
    changed.
<p>

    <code class="code">single_pwrite</code> attempts to write only once. Returns the number of
    characters written or raises an Unix.Unix_error exception. Unlike
    the string variant of the same name there is no limit on the
    number of characters written.<br>
</div>
<pre><span id="VALsingle_pwrite"><span class="keyword">val</span> single_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_pwrite"><span class="keyword">val</span> unsafe_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">pwrite fd off buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file) into
    the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not changed.
<p>

    <code class="code">pwrite</code> repeats the write operation until all characters have
    been written or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be written before an error occurs. Continues
    the write operation on EINTR. Returns the number of characters
    written in all other cases.<br>
</div>
<pre><span id="VALpwrite"><span class="keyword">val</span> pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_intr_pwrite"><span class="keyword">val</span> unsafe_intr_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">intr_pwrite fd off buf ofs len</code> writes up to <code class="code">len</code> bytes from
    file descriptor <code class="code">fd</code> at offset <code class="code">off</code> (from the start of the file)
    into the string <code class="code">buf</code> at offset <code class="code">ofs</code>. The file offset is not
    changed.
<p>

    <code class="code">intr_pwrite</code> repeats the write operation until all characters have
    been written or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be written before an error occurs. Does NOT
    continue on EINTR. Returns the number of characters written in all
    other cases.<br>
</div>
<pre><span id="VALintr_pwrite"><span class="keyword">val</span> intr_pwrite</span> : <code class="type">Unix.file_descr -> int -> string -> int -> int -> int</code></pre><br>
<h2 id="2_read">read</h2>
<p>

    <b>Author:</b> Goswin von Brederlow<br>
<pre><span id="VALunsafe_all_read"><span class="keyword">val</span> unsafe_all_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">all_read fd buf ofs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">all_read</code> repeats the read operation until all characters have
    been read or an error occurs. Returns less than the number of
    characters requested on EAGAIN, EWOULDBLOCK or End-of-file but
    only ever returns 0 on End-of-file. Continues the read operation
    on EINTR. Raises an Unix.Unix_error exception in all other
    cases.<br>
</div>
<pre><span id="VALall_read"><span class="keyword">val</span> all_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_single_read"><span class="keyword">val</span> unsafe_single_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">single_read fd buf ifs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">single_read</code> attempts to read only once. Returns the number of
    characters read or raises an Unix.Unix_error exception. Unlike the
    string variant of the same name there is no limit on the number of
    characters read.<br>
</div>
<pre><span id="VALsingle_read"><span class="keyword">val</span> single_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_read"><span class="keyword">val</span> unsafe_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">read fd buf ofs len</code> reads up to <code class="code">len</code> bytes from file descriptor
    <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">read</code> repeats the read operation until all characters have
    been read or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be read before an error occurs. Continues
    the read operation on EINTR. Returns the number of characters
    written in all other cases.<br>
</div>
<pre><span id="VALread"><span class="keyword">val</span> read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_intr_read"><span class="keyword">val</span> unsafe_intr_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">intr_read fd buf ofs len</code> reads up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">intr_read</code> repeats the read operation until all characters have
    been read or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be read before an error occurs. Does NOT
    continue on EINTR. Returns the number of characters written in all
    other cases.<br>
</div>
<pre><span id="VALintr_read"><span class="keyword">val</span> intr_read</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><br>
<h2 id="2_write">write</h2>
<p>

    <b>Author:</b> Goswin von Brederlow<br>
<pre><span id="VALunsafe_all_write"><span class="keyword">val</span> unsafe_all_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">all_write fd buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">all_write</code> repeats the write operation until all characters have
    been written or an error occurs. Returns less than the number of
    characters requested on EAGAIN, EWOULDBLOCK but never 0. Continues
    the write operation on EINTR. Raises an Unix.Unix_error exception
    in all other cases.<br>
</div>
<pre><span id="VALall_write"><span class="keyword">val</span> all_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_single_write"><span class="keyword">val</span> unsafe_single_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">single_write fd buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">single_write</code> attempts to write only once. Returns the number of
    characters written or raises an Unix.Unix_error exception. Unlike
    the string variant of the same name there is no limit on the
    number of characters written.<br>
</div>
<pre><span id="VALsingle_write"><span class="keyword">val</span> single_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_write"><span class="keyword">val</span> unsafe_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">write fd buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">write</code> repeats the write operation until all characters have
    been written or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be written before an error occurs. Continues
    the write operation on EINTR. Returns the number of characters
    written in all other cases.<br>
</div>
<pre><span id="VALwrite"><span class="keyword">val</span> write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><pre><span id="VALunsafe_intr_write"><span class="keyword">val</span> unsafe_intr_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><div class="info">
<code class="code">intr_write fd buf ofs len</code> writes up to <code class="code">len</code> bytes from file
    descriptor <code class="code">fd</code> into the string <code class="code">buf</code> at offset <code class="code">ofs</code>.
<p>

    <code class="code">intr_write</code> repeats the write operation until all characters have
    been written or an error occurs. Raises an Unix.Unix_error exception
    if 0 characters could be written before an error occurs. Does NOT
    continue on EINTR. Returns the number of characters written in all
    other cases.<br>
</div>
<pre><span id="VALintr_write"><span class="keyword">val</span> intr_write</span> : <code class="type">Unix.file_descr -> string -> int -> int -> int</code></pre><br>
<h2 id="2_Fileoperationsonlargefiles">File operations on large files</h2><br>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.LargeFile.html">LargeFile</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.LargeFile.html">..</a> <code class="code">end</code></pre><div class="info">
File operations on large files.
</div>
<br>
<h2 id="2_ioctl">ioctl</h2><br>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.Ioctl.html">Ioctl</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.Ioctl.html">..</a> <code class="code">end</code></pre><div class="info">
Control the underlying device parameters of special files
</div>
<br>
<h2 id="2_Miscellaneous">Miscellaneous</h2><br>
<pre><span id="VALttyname"><span class="keyword">val</span> ttyname</span> : <code class="type">Unix.file_descr -> string</code></pre><div class="info">
<b>Returns</b> name of terminal<br>
</div>
<pre><span id="VALctermid"><span class="keyword">val</span> ctermid</span> : <code class="type">unit -> string</code></pre><div class="info">
Get controlling terminal name<br>
</div>
<pre><span id="VALsetpgid"><span class="keyword">val</span> setpgid</span> : <code class="type">int -> int -> unit</code></pre><div class="info">
<code class="code">setpgid pid pgid</code> sets the process group of the process specified by <code class="code">pid</code> to <code class="code">pgid</code>.
    If <code class="code">pid</code> is zero, then the process ID of the calling process is used. If
    <code class="code">pgid</code> is zero, then the PGID of the process specified by <code class="code">pid</code> is made the same as its process ID.<br>
</div>
<pre><span id="VALgetpgid"><span class="keyword">val</span> getpgid</span> : <code class="type">int -> int</code></pre><div class="info">
<code class="code">getpgid pid</code> returns the PGID of the process specified by <code class="code">pid</code>.
    If <code class="code">pid</code> is zero, the process ID of the calling process is used.<br>
</div>
<pre><span id="VALgetsid"><span class="keyword">val</span> getsid</span> : <code class="type">int -> int</code></pre><div class="info">
<code class="code">getsid pid</code> returns the session ID of the process specified by <code class="code">pid</code>.
    If <code class="code">pid</code> is zero, the process ID of the calling process is used.<br>
</div>
<pre><span id="VALsetreuid"><span class="keyword">val</span> setreuid</span> : <code class="type">int -> int -> unit</code></pre><div class="info">
<code class="code">setreuid ruid euid</code> sets real and effective user IDs of the calling process.
    Supplying a value of -1 for either the real or effective user ID forces the system to leave that ID unchanged.<br>
<b>See also</b> <i>setreuid(2)</i> manual<br>
</div>
<pre><span id="VALsetregid"><span class="keyword">val</span> setregid</span> : <code class="type">int -> int -> unit</code></pre><div class="info">
<code class="code">setregid rgid egid</code> sets real and effective group IDs of the calling process.
    Supplying a value of -1 for either the real or effective group ID forces the system to leave that ID unchanged.<br>
<b>See also</b> <i>setregid(2)</i> manual<br>
</div>
<pre><span id="VALsetresuid"><span class="keyword">val</span> setresuid</span> : <code class="type">int -> int -> int -> unit</code></pre><div class="info">
<code class="code">setresuid ruid euid suid</code> sets real, effective and saved user IDs of the calling process.
    Supplying a value of -1 for either the real or effective user ID forces the system to leave that ID unchanged.<br>
<b>See also</b> <i>setresuid(2)</i> manual<br>
</div>
<pre><span id="VALsetresgid"><span class="keyword">val</span> setresgid</span> : <code class="type">int -> int -> int -> unit</code></pre><div class="info">
<code class="code">setresgid rgid egid sgid</code> sets real, effective and saved group IDs of the calling process.
    Supplying a value of -1 for either the real or effective group ID forces the system to leave that ID unchanged.<br>
<b>See also</b> <i>setresgid(2)</i> manual<br>
</div>
<pre><span id="VALrealpath"><span class="keyword">val</span> realpath</span> : <code class="type">string -> string</code></pre><div class="info">
<code class="code">realpath path</code><br>
<b>Returns</b> the canonicalized absolute pathname of <code class="code">path</code><br>
<b>See also</b> <i>realpath(2)</i> manual<br>
</div>
<pre><span id="VALis_open_descr"><span class="keyword">val</span> is_open_descr</span> : <code class="type">Unix.file_descr -> bool</code></pre><div class="info">
<b>Returns</b> whether file desctiptor is open<br>
</div>
<pre><span id="VALtcgetpgrp"><span class="keyword">val</span> tcgetpgrp</span> : <code class="type">Unix.file_descr -> int</code></pre><pre><span id="VALtcsetpgrp"><span class="keyword">val</span> tcsetpgrp</span> : <code class="type">Unix.file_descr -> int -> unit</code></pre><pre><span id="VALint_of_file_descr"><span class="keyword">val</span> int_of_file_descr</span> : <code class="type">Unix.file_descr -> int</code></pre><div class="info">
<b>Raises</b> <code>Not_available</code> if OS does not represent file descriptors as numbers<br>
</div>
<pre><span id="VALfile_descr_of_int"><span class="keyword">val</span> file_descr_of_int</span> : <code class="type">int -> Unix.file_descr</code></pre><div class="info">
<b>Raises</b> <code>Not_available</code> if OS does not represent file descriptors as numbers<br>
</div>
<pre><span id="VALsys_exit"><span class="keyword">val</span> sys_exit</span> : <code class="type">int -> 'a</code></pre><div class="info">
Exit process without running any <code class="code">at_exit</code> hooks (implemented in Pervasives)<br>
</div>
<br>
<h2 id="2_signalfd">signalfd</h2><br>
<br>
OCaml bindings for signalfd(2) and related functions
<p>

    <b>Author:</b> Kaustuv Chaudhuri &lt;kaustuv.chaudhuri@inria.fr&gt;<br>
<pre><span id="VALsignalfd"><span class="keyword">val</span> signalfd</span> : <code class="type">?fd:Unix.file_descr -><br>       sigs:int list -> flags:int list -> unit -> Unix.file_descr</code></pre><div class="info">
<code class="code">signalfd ?fd sigs flags ()</code>
    If the first optional argument is omitted, then a new file descriptor is allocated.
    Otherwise, the given file descriptor is modified (in which case it
    must have been created with <code class="code">signalfd</code> previously). When you are
    done with the fd, remember to <code class="code">Unix.close</code> it. Do not forget
    to block <code class="code">sigs</code> with <code class="code">Unix.sigprocmask</code> to prevent signal handling
    according to default dispositions.<br>
<b>See also</b> <i>signalfd(2)</i> manual<br>
</div>
<pre><span id="TYPEssi"><span class="keyword">type</span> <code class="type"></code>ssi</span> </pre>
<div class="info">
This type represents signal information that is read(2) from the
    signalfd.<br>
</div>

<pre><span id="VALsignalfd_read"><span class="keyword">val</span> signalfd_read</span> : <code class="type">Unix.file_descr -> <a href="ExtUnixSpecific.html#TYPEssi">ssi</a></code></pre><div class="info">
Blocking read(2) on a signalfd. Has undefined behaviour on
    non-signalfds. Every successful read consumes a pending signal.<br>
</div>
<br>
<h6 id="6_Functionstoquerythesignalinformationstructure">Functions to query the signal information structure.</h6><br>
<pre><span id="VALssi_signo_sys"><span class="keyword">val</span> ssi_signo_sys</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int</code></pre><div class="info">
Get the signal value. This form is compatible with the signal
    values defined in the standard <code class="code">Sys</code> module.
<p>

    See signalfd(2) for the details of the remaining functions. Most
    of these integers are actually unsigned.<br>
</div>
<pre><span id="VALssi_signo"><span class="keyword">val</span> ssi_signo</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_errno"><span class="keyword">val</span> ssi_errno</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_code"><span class="keyword">val</span> ssi_code</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_pid"><span class="keyword">val</span> ssi_pid</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_uid"><span class="keyword">val</span> ssi_uid</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_fd"><span class="keyword">val</span> ssi_fd</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> Unix.file_descr</code></pre><pre><span id="VALssi_tid"><span class="keyword">val</span> ssi_tid</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_band"><span class="keyword">val</span> ssi_band</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_overrun"><span class="keyword">val</span> ssi_overrun</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_trapno"><span class="keyword">val</span> ssi_trapno</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_status"><span class="keyword">val</span> ssi_status</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_int"><span class="keyword">val</span> ssi_int</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int32</code></pre><pre><span id="VALssi_ptr"><span class="keyword">val</span> ssi_ptr</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int64</code></pre><pre><span id="VALssi_utime"><span class="keyword">val</span> ssi_utime</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int64</code></pre><pre><span id="VALssi_stime"><span class="keyword">val</span> ssi_stime</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int64</code></pre><pre><span id="VALssi_addr"><span class="keyword">val</span> ssi_addr</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEssi">ssi</a> -> int64</code></pre><br>
<h2 id="2_POSIXresourceoperations">POSIX resource operations</h2>
<p>

  <b>Author:</b> Sylvain Le Gall &lt;sylvain@le-gall.net&gt;<br>
<pre><code><span id="TYPEwhich_prio_t"><span class="keyword">type</span> <code class="type"></code>which_prio_t</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTwhich_prio_t.PRIO_PROCESS"><span class="constructor">PRIO_PROCESS</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Priority for a process id</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTwhich_prio_t.PRIO_PGRP"><span class="constructor">PRIO_PGRP</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Priority for a process group id</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTwhich_prio_t.PRIO_USER"><span class="constructor">PRIO_USER</span></span> <span class="keyword">of</span> <code class="type">int</code></code></td>

</tr></table>

<div class="info">
priority target<br>
</div>

<pre><span id="TYPEpriority"><span class="keyword">type</span> <code class="type"></code>priority</span> = <code class="type">int</code> </pre>
<div class="info">
Priority for a user id<br>
</div>

<pre><code><span id="TYPEresource"><span class="keyword">type</span> <code class="type"></code>resource</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_CORE"><span class="constructor">RLIMIT_CORE</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on size of core dump file.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_CPU"><span class="constructor">RLIMIT_CPU</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on CPU time per process.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_DATA"><span class="constructor">RLIMIT_DATA</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on data segment size.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_FSIZE"><span class="constructor">RLIMIT_FSIZE</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on file size.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_NOFILE"><span class="constructor">RLIMIT_NOFILE</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on number of open files.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_STACK"><span class="constructor">RLIMIT_STACK</span></span></code></td>
<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" >Limit on stack size.</td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td>
</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTresource.RLIMIT_AS"><span class="constructor">RLIMIT_AS</span></span></code></td>

</tr></table>


<br>
Limit on address space size.<br>
<pre><span id="VALstring_of_resource"><span class="keyword">val</span> string_of_resource</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEresource">resource</a> -> string</code></pre><div class="info">
get resource name<br>
</div>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.Rlimit.html">Rlimit</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.Rlimit.html">..</a> <code class="code">end</code></pre><div class="info">
Limits
</div>
<pre><span id="VALgetpriority"><span class="keyword">val</span> getpriority</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEwhich_prio_t">which_prio_t</a> -> <a href="ExtUnixSpecific.html#TYPEpriority">priority</a></code></pre><div class="info">
Get nice value<br>
</div>
<pre><span id="VALsetpriority"><span class="keyword">val</span> setpriority</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEwhich_prio_t">which_prio_t</a> -> <a href="ExtUnixSpecific.html#TYPEpriority">priority</a> -> unit</code></pre><div class="info">
Set nice value<br>
</div>
<pre><span id="VALgetrlimit"><span class="keyword">val</span> getrlimit</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEresource">resource</a> -><br>       <a href="ExtUnixSpecific.Rlimit.html#TYPEt">Rlimit.t</a> * <a href="ExtUnixSpecific.Rlimit.html#TYPEt">Rlimit.t</a></code></pre><div class="info">
Get maximum resource consumption.<br>
<b>Returns</b> <code class="code">(soft,hard)</code> limits<br>
</div>
<pre><span id="VALsetrlimit"><span class="keyword">val</span> setrlimit</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEresource">resource</a> -><br>       soft:<a href="ExtUnixSpecific.Rlimit.html#TYPEt">Rlimit.t</a> -> hard:<a href="ExtUnixSpecific.Rlimit.html#TYPEt">Rlimit.t</a> -> unit</code></pre><div class="info">
Set maximum resource consumption<br>
</div>
<br>
<code class="code">getrusage</code> is not implemented because the only meaningful information it
    provides are <code class="code">ru_utime</code> and <code class="code">ru_stime</code> which can be accessed through 
    <code class="code">Unix.times</code>.<br>
<br>
<h2 id="2_Memorymanagement">Memory management</h2><br>
<pre><code><span id="TYPEmlockall_flag"><span class="keyword">type</span> <code class="type"></code>mlockall_flag</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTmlockall_flag.MCL_CURRENT"><span class="constructor">MCL_CURRENT</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTmlockall_flag.MCL_FUTURE"><span class="constructor">MCL_FUTURE</span></span></code></td>

</tr></table>

<div class="info">
mlockall flag<br>
</div>

<pre><span id="VALmlockall"><span class="keyword">val</span> mlockall</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEmlockall_flag">mlockall_flag</a> list -> unit</code></pre><div class="info">
Lock all pages mapped into the address space of the calling process.<br>
</div>
<pre><span id="VALmunlockall"><span class="keyword">val</span> munlockall</span> : <code class="type">unit -> unit</code></pre><div class="info">
Unlock all pages mapped into the address space of the calling process.<br>
</div>
<pre><span id="VALmemalign"><span class="keyword">val</span> memalign</span> : <code class="type">int -> int -> <a href="ExtUnixSpecific.html#TYPEbuffer">buffer</a></code></pre><div class="info">
<code class="code">memalign alignment size</code> creates a <code class="code">Bigarray.Array1.t</code> of <code class="code">size</code> bytes,
    which data is aligned to <code class="code">alignment</code> (must be a power of 2)
<p>

    <b>Author:</b> Goswin von Brederlow<br>
</div>
<br>
<h2 id="2_Timeconversion">Time conversion</h2><br>
<pre><span id="VALstrptime"><span class="keyword">val</span> strptime</span> : <code class="type">string -> string -> Unix.tm</code></pre><div class="info">
This function is the converse of the <a href="ExtUnixSpecific.html#VALstrftime"><code class="code">ExtUnixSpecific.strftime</code></a> function.
  <code class="code">strptime fmt data</code> convert a string containing time information <code class="code">data</code>
  into a <code class="code">tm</code> struct according to the format specified by <code class="code">fmt</code>.<br>
</div>
<pre><span id="VALasctime"><span class="keyword">val</span> asctime</span> : <code class="type">Unix.tm -> string</code></pre><div class="info">
Return the ascii representation of a given <code class="code">tm</code> argument. The
  ascii time is returned in the form of a string like 
  'Wed Jun 30, 21:21:21 2005\n'<br>
</div>
<pre><span id="VALstrftime"><span class="keyword">val</span> strftime</span> : <code class="type">string -> Unix.tm -> string</code></pre><div class="info">
This functions is the converse of the <a href="ExtUnixSpecific.html#VALstrptime"><code class="code">ExtUnixSpecific.strptime</code></a> function.
  <code class="code">strftime fmt data</code> convert a a <code class="code">tm</code> structure <code class="code">data</code> into a string
  according to the format specified by <code class="code">fmt</code>.<br>
</div>
<pre><span id="VALtzname"><span class="keyword">val</span> tzname</span> : <code class="type">bool -> string</code></pre><div class="info">
<code class="code">tzname isdst</code><br>
<b>Returns</b> abbreviated name of the current timezone<br>
</div>
<pre><span id="VALtimegm"><span class="keyword">val</span> timegm</span> : <code class="type">Unix.tm -> float</code></pre><div class="info">
Inverse of <code class="code">Unix.gmtime</code><br>
</div>
<br>
<h2 id="2_Pseudoterminalmanagement">Pseudo terminal management</h2>
<p>

  <b>Author:</b> Niki Yoshiuchi &lt;aplusbi@gmail.com&gt;<br>
<pre><span id="VALposix_openpt"><span class="keyword">val</span> posix_openpt</span> : <code class="type"><a href="ExtUnixSpecific.html#TYPEopen_flag">open_flag</a> list -> Unix.file_descr</code></pre><div class="info">
This function opens a pseudo-terminal device.<br>
</div>
<pre><span id="VALgrantpt"><span class="keyword">val</span> grantpt</span> : <code class="type">Unix.file_descr -> unit</code></pre><div class="info">
This function grants access to the slave pseudo-terminal.<br>
</div>
<pre><span id="VALunlockpt"><span class="keyword">val</span> unlockpt</span> : <code class="type">Unix.file_descr -> unit</code></pre><div class="info">
This function unlock a pseudo-terminal master/slave pair.<br>
</div>
<pre><span id="VALptsname"><span class="keyword">val</span> ptsname</span> : <code class="type">Unix.file_descr -> string</code></pre><div class="info">
This function get the name of the slave pseudo-terminal.<br>
</div>
<br>
<h2 id="2_Applicationselfdebugginganddiagnostics">Application self-debugging and diagnostics</h2><br>
<pre><span id="VALbacktrace"><span class="keyword">val</span> backtrace</span> : <code class="type">unit -> string array</code></pre><div class="info">
<b>Returns</b> a backtrace for the calling program<br>
</div>
<pre><span id="VALmalloc_stats"><span class="keyword">val</span> malloc_stats</span> : <code class="type">unit -> unit</code></pre><div class="info">
Print brief heap summary statistics on stderr<br>
</div>
<pre><span id="VALmalloc_info"><span class="keyword">val</span> malloc_info</span> : <code class="type">unit -> string</code></pre><div class="info">
<b>Returns</b> the information about state of allocator<br>
</div>
<pre><span id="VALptrace_traceme"><span class="keyword">val</span> ptrace_traceme</span> : <code class="type">unit -> unit</code></pre><pre><span id="VALptrace_peekdata"><span class="keyword">val</span> ptrace_peekdata</span> : <code class="type">int -> nativeint -> nativeint</code></pre><pre><span id="VALptrace_peektext"><span class="keyword">val</span> ptrace_peektext</span> : <code class="type">int -> nativeint -> nativeint</code></pre><pre><code><span id="TYPEptrace_request"><span class="keyword">type</span> <code class="type"></code>ptrace_request</span> = </code></pre><table class="typetable">
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTptrace_request.PTRACE_ATTACH"><span class="constructor">PTRACE_ATTACH</span></span></code></td>

</tr>
<tr>
<td align="left" valign="top" >
<code><span class="keyword">|</span></code></td>
<td align="left" valign="top" >
<code><span id="TYPEELTptrace_request.PTRACE_DETACH"><span class="constructor">PTRACE_DETACH</span></span></code></td>

</tr></table>


<pre><span id="VALptrace"><span class="keyword">val</span> ptrace</span> : <code class="type">int -> <a href="ExtUnixSpecific.html#TYPEptrace_request">ptrace_request</a> -> unit</code></pre><br>
<h2 id="2_Environmentmanipulation">Environment manipulation</h2><br>
<pre><span id="VALsetenv"><span class="keyword">val</span> setenv</span> : <code class="type">string -> string -> bool -> unit</code></pre><div class="info">
<code class="code">setenv name value overwrite</code> adds the variable <code class="code">name</code> to the environment with the value <code class="code">value</code>, if <code class="code">name</code>
does not already exist or <code class="code">overwrite</code> is true<br>
</div>
<pre><span id="VALunsetenv"><span class="keyword">val</span> unsetenv</span> : <code class="type">string -> unit</code></pre><div class="info">
<code class="code">unsetenv name</code> removes variable <code class="code">name</code> from the environment. If <code class="code">name</code> does not exist in the environment, then the function
succeeds, and the environment is unchanged.<br>
</div>
<pre><span id="VALclearenv"><span class="keyword">val</span> clearenv</span> : <code class="type">unit -> unit</code></pre><div class="info">
Clear the environment of all name-value pairs<br>
</div>
<br>
<h2 id="2_Temporarydirectories">Temporary directories</h2><br>
<pre><span id="VALmkdtemp"><span class="keyword">val</span> mkdtemp</span> : <code class="type">string -> string</code></pre><div class="info">
<code class="code">mkdtemp template</code> creates a unique temporary directory (with permissions 0700).
  Last six characters of <code class="code">template</code> must be "XXXXXX".<br>
</div>
<pre><span id="VALinternal_mkstemps"><span class="keyword">val</span> internal_mkstemps</span> : <code class="type">string -> int -> Unix.file_descr</code></pre><div class="info">
internal use only<br>
</div>
<pre><span id="VALmkstemp"><span class="keyword">val</span> mkstemp</span> : <code class="type">?suffix:string -> string -> Unix.file_descr * string</code></pre><div class="info">
<code class="code">mkstemp ?(suffix="") prefix</code> generates a unique temporary
    filename in the form <code class="code">prefix</code>XXXXXX<code class="code">suffix</code>, creates and opens the
    file, and returns an open file descriptor and name for the
    file.<br>
</div>
<pre><span id="VALinternal_mkostemps"><span class="keyword">val</span> internal_mkostemps</span> : <code class="type">string -> int -> <a href="ExtUnixSpecific.html#TYPEopen_flag">open_flag</a> list -> Unix.file_descr</code></pre><div class="info">
internal use only<br>
</div>
<pre><span id="VALmkostemp"><span class="keyword">val</span> mkostemp</span> : <code class="type">?suffix:string -><br>       ?flags:<a href="ExtUnixSpecific.html#TYPEopen_flag">open_flag</a> list -> string -> Unix.file_descr * string</code></pre><div class="info">
<code class="code">mkostemp ?(suffix="") ?(flags=[]) prefix</code> generates a unique temporary
    filename in the form <code class="code">prefix</code>XXXXXX<code class="code">suffix</code>, creates and opens the
    file with <code class="code">flags</code>, and returns an open file descriptor and name
    for the file.<br>
</div>
<br>
<h2 id="2_Byteorderconversion">Byte order conversion</h2><br>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.BigEndian.html">BigEndian</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.BigEndian.html">..</a> <code class="code">end</code></pre><div class="info">
big endian functions
</div>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.LittleEndian.html">LittleEndian</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.LittleEndian.html">..</a> <code class="code">end</code></pre><div class="info">
little endian functions
</div>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.HostEndian.html">HostEndian</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.HostEndian.html">..</a> <code class="code">end</code></pre><div class="info">
host endian functions
</div>
<br>
<h2 id="2_readcredentials">read_credentials </h2>
<p>

      <b>Author:</b> Andre Nathan<br>
<pre><span id="VALread_credentials"><span class="keyword">val</span> read_credentials</span> : <code class="type">Unix.file_descr -> int * int * int</code></pre><div class="info">
Reads sender credentials from a file descriptor, returning a 3-element
    tuple containing the sender process' PID, UID and GID.<br>
</div>
<br>
<h2 id="2_fexecve">fexecve </h2>
<p>

    <b>Author:</b> Andre Nathan<br>
<pre><span id="VALfexecve"><span class="keyword">val</span> fexecve</span> : <code class="type">Unix.file_descr -> string array -> string array -> 'a</code></pre><div class="info">
<code class="code">fexecve fd args env</code> executes the program in file represented by
    file descriptor <code class="code">fd</code> with arguments <code class="code">args</code> and environment
    variables given by <code class="code">env</code>. As with the <code class="code">execv*</code> functions, on
    success <code class="code">fexecve</code> never returns; the current process is replaced
    by the new one.<br>
</div>
<br>
<h2 id="2_sendmsgrecvmsg">sendmsg / recvmsg </h2>
<p>

    <b>Author:</b> Andre Nathan<br>
<pre><span id="VALsendmsg"><span class="keyword">val</span> sendmsg</span> : <code class="type">Unix.file_descr -> ?sendfd:Unix.file_descr -> string -> unit</code></pre><div class="info">
Send a message and optionally a file descriptor through a socket. Passing
    file descriptors requires UNIX domain sockets.<br>
</div>
<pre><span id="VALrecvmsg_fd"><span class="keyword">val</span> recvmsg_fd</span> : <code class="type">Unix.file_descr -> Unix.file_descr option * string</code></pre><div class="info">
Recieve a message and possibly a file descriptor from a socket.<br>
</div>
<pre><span id="VALsendfd"><span class="keyword">val</span> sendfd</span> : <code class="type">Unix.file_descr -> Unix.file_descr -> unit</code></pre><div class="info">
Send a file descriptor through a UNIX domain socket.<br>
</div>
<pre><span id="VALrecvfd"><span class="keyword">val</span> recvfd</span> : <code class="type">Unix.file_descr -> Unix.file_descr</code></pre><div class="info">
Receive a file descriptor sent through a UNIX domain socket.<br>
</div>
<pre><span id="EXCEPTIONRecvfd"><span class="keyword">exception</span> Recvfd</span> <span class="keyword">of</span> <code class="type">Unix.file_descr * string</code></pre>
<div class="info">
Receive a message sent through a UNIX domain socket. Raises
    Recvfd(fd, msg) if a file descriptor is recieved.<br>
</div>
<pre><span id="VALrecvmsg"><span class="keyword">val</span> recvmsg</span> : <code class="type">Unix.file_descr -> string</code></pre><pre><span id="VALrecvmsg_nofd"><span class="keyword">val</span> recvmsg_nofd</span> : <code class="type">Unix.file_descr -> string</code></pre><div class="info">
Receive a message sent through a UNIX domain socket. Closes and
    ignores file descriptors.<br>
</div>
<br>
<h2 id="2_Bigarrayvariants">Bigarray variants</h2><br>
<pre><span class="keyword">module</span> <a href="ExtUnixSpecific.BA.html">BA</a>: <code class="code">sig</code> <a href="ExtUnixSpecific.BA.html">..</a> <code class="code">end</code></pre><div class="info">
</div>
</body></html>