ocaml-containers/dev/ocaml/ThreadUnix/index.html

47 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ThreadUnix (ocaml.ThreadUnix)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc v2.3.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">ocaml</a> &#x00BB; ThreadUnix</nav><header class="odoc-preamble"><h1>Module <code><span>ThreadUnix</span></code></h1><p>Thread-compatible system calls.</p><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>The functionality of this module has been merged back into the <a href="../Unix/index.html"><code>Unix</code></a> module. Threaded programs can now call the functions from module <a href="../Unix/index.html"><code>Unix</code></a> directly, and still get the correct behavior (block the calling thread, if required, but do not block all threads in the process).</p></li></ul></header><nav class="odoc-toc"><ul><li><a href="#process-handling">Process handling</a></li><li><a href="#basic-input/output">Basic input/output</a></li><li><a href="#input/output-with-timeout">Input/output with timeout</a></li><li><a href="#polling">Polling</a></li><li><a href="#pipes-and-redirections">Pipes and redirections</a></li><li><a href="#time">Time</a></li><li><a href="#sockets">Sockets</a></li></ul></nav><div class="odoc-content"><h2 id="process-handling"><a href="#process-handling" class="anchor"></a>Process handling</h2><div class="odoc-spec"><div class="spec value anchored" id="val-execv"><a href="#val-execv" class="anchor"></a><code><span><span class="keyword">val</span> execv : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>string array</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-execve"><a href="#val-execve" class="anchor"></a><code><span><span class="keyword">val</span> execve : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>string array</span> <span class="arrow">&#45;&gt;</span></span> <span><span>string array</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-execvp"><a href="#val-execvp" class="anchor"></a><code><span><span class="keyword">val</span> execvp : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>string array</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-wait"><a href="#val-wait" class="anchor"></a><code><span><span class="keyword">val</span> wait : <span>unit <span class="arrow">&#45;&gt;</span></span> int * <a href="../Unix/index.html#type-process_status">Unix.process_status</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-waitpid"><a href="#val-waitpid" class="anchor"></a><code><span><span class="keyword">val</span> waitpid : <span><span><a href="../Unix/index.html#type-wait_flag">Unix.wait_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> int * <a href="../Unix/index.html#type-process_status">Unix.process_status</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-system"><a href="#val-system" class="anchor"></a><code><span><span class="keyword">val</span> system : <span>string <span class="arrow">&#45;&gt;</span></span> <a href="../Unix/index.html#type-process_status">Unix.process_status</a></span></code></div></div><h2 id="basic-input/output"><a href="#basic-input/output" class="anchor"></a>Basic input/output</h2><div class="odoc-spec"><div class="spec value anchored" id="val-read"><a href="#val-read" class="anchor"></a><code><span><span class="keyword">val</span> read : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write"><a href="#val-write" class="anchor"></a><code><span><span class="keyword">val</span> write : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-write_substring"><a href="#val-write_substring" class="anchor"></a><code><span><span class="keyword">val</span> write_substring : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><h2 id="input/output-with-timeout"><a href="#input/output-with-timeout" class="anchor"></a>Input/output with timeout</h2><div class="odoc-spec"><div class="spec value anchored" id="val-timed_read"><a href="#val-timed_read" class="anchor"></a><code><span><span class="keyword">val</span> timed_read : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>See <a href="#val-timed_write"><code>ThreadUnix.timed_write</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-timed_write"><a href="#val-timed_write" class="anchor"></a><code><span><span class="keyword">val</span> timed_write : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p>Behave as <a href="#val-read"><code>ThreadUnix.read</code></a> and <a href="#val-write"><code>ThreadUnix.write</code></a>, except that <code>Unix_error(ETIMEDOUT,_,_)</code> is raised if no data is available for reading or ready for writing after <code>d</code> seconds. The delay <code>d</code> is given in the fifth argument, in seconds.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-timed_write_substring"><a href="#val-timed_write_substring" class="anchor"></a><code><span><span class="keyword">val</span> timed_write_substring :
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>float <span class="arrow">&#45;&gt;</span></span>
int</span></code></div><div class="spec-doc"><p>See <a href="#val-timed_write"><code>ThreadUnix.timed_write</code></a>.</p></div></div><h2 id="polling"><a href="#polling" class="anchor"></a>Polling</h2><div class="odoc-spec"><div class="spec value anchored" id="val-select"><a href="#val-select" class="anchor"></a><code><span><span class="keyword">val</span> select :
<span><span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>float <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span> * <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span> * <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> list</span></span></code></div></div><h2 id="pipes-and-redirections"><a href="#pipes-and-redirections" class="anchor"></a>Pipes and redirections</h2><div class="odoc-spec"><div class="spec value anchored" id="val-pipe"><a href="#val-pipe" class="anchor"></a><code><span><span class="keyword">val</span> pipe : <span><span class="optlabel">?cloexec</span>:bool <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> * <a href="../Unix/index.html#type-file_descr">Unix.file_descr</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-open_process_in"><a href="#val-open_process_in" class="anchor"></a><code><span><span class="keyword">val</span> open_process_in : <span>string <span class="arrow">&#45;&gt;</span></span> <a href="../Stdlib/index.html#type-in_channel">in_channel</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-open_process_out"><a href="#val-open_process_out" class="anchor"></a><code><span><span class="keyword">val</span> open_process_out : <span>string <span class="arrow">&#45;&gt;</span></span> <a href="../Stdlib/index.html#type-out_channel">out_channel</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-open_process"><a href="#val-open_process" class="anchor"></a><code><span><span class="keyword">val</span> open_process : <span>string <span class="arrow">&#45;&gt;</span></span> <a href="../Stdlib/index.html#type-in_channel">in_channel</a> * <a href="../Stdlib/index.html#type-out_channel">out_channel</a></span></code></div></div><h2 id="time"><a href="#time" class="anchor"></a>Time</h2><div class="odoc-spec"><div class="spec value anchored" id="val-sleep"><a href="#val-sleep" class="anchor"></a><code><span><span class="keyword">val</span> sleep : <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><h2 id="sockets"><a href="#sockets" class="anchor"></a>Sockets</h2><div class="odoc-spec"><div class="spec value anchored" id="val-socket"><a href="#val-socket" class="anchor"></a><code><span><span class="keyword">val</span> socket :
<span><span class="optlabel">?cloexec</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-socket_domain">Unix.socket_domain</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-socket_type">Unix.socket_type</a> <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<a href="../Unix/index.html#type-file_descr">Unix.file_descr</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-accept"><a href="#val-accept" class="anchor"></a><code><span><span class="keyword">val</span> accept :
<span><span class="optlabel">?cloexec</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> * <a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-connect"><a href="#val-connect" class="anchor"></a><code><span><span class="keyword">val</span> connect : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-recv"><a href="#val-recv" class="anchor"></a><code><span><span class="keyword">val</span> recv : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-recvfrom"><a href="#val-recvfrom" class="anchor"></a><code><span><span class="keyword">val</span> recvfrom :
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<span>bytes <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
int * <a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send"><a href="#val-send" class="anchor"></a><code><span><span class="keyword">val</span> send : <span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_substring"><a href="#val-send_substring" class="anchor"></a><code><span><span class="keyword">val</span> send_substring :
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sendto"><a href="#val-sendto" class="anchor"></a><code><span><span class="keyword">val</span> sendto :
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<span>bytes <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span>
int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sendto_substring"><a href="#val-sendto_substring" class="anchor"></a><code><span><span class="keyword">val</span> sendto_substring :
<span><a href="../Unix/index.html#type-file_descr">Unix.file_descr</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../Unix/index.html#type-msg_flag">Unix.msg_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span>
int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-open_connection"><a href="#val-open_connection" class="anchor"></a><code><span><span class="keyword">val</span> open_connection : <span><a href="../Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span> <a href="../Stdlib/index.html#type-in_channel">in_channel</a> * <a href="../Stdlib/index.html#type-out_channel">out_channel</a></span></code></div></div></div></body></html>