---
name: "ThreadUnix"
section: "3o"
platform: "linux"
package: "ocaml-man"
version: "4.13.1-4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/ThreadUnix"
---

# ThreadUnix(3o)

Thread-compatible system calls.

## NAME

ThreadUnix - Thread-compatible system calls.

## Module

Module   ThreadUnix

## Documentation

Module **ThreadUnix**\
  :  **sig end**

**Deprecated.** The functionality of this module has been merged back into the  **Unix** module.  Threaded programs can now call the functions from module  **Unix** directly, and still get the correct behavior (block the calling thread, if required, but do not block all threads in the process).

Thread-compatible system calls.

### Process handling

*val execv* :  **string -\> string array -\> unit**

*val execve* :  **string -\> string array -\> string array -\> unit**

*val execvp* :  **string -\> string array -\> unit**

*val wait* :  **unit -\> int \* Unix.process\_status**

*val waitpid* :  **Unix.wait\_flag list -\> int -\> int \* Unix.process\_status**

*val system* :  **string -\> Unix.process\_status**

### Basic input/output

*val read* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> int**

*val write* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> int**

*val write\_substring* :  **Unix.file\_descr -\> string -\> int -\> int -\> int**

### Input/output with timeout

*val timed\_read* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> float -\> int**

See  **ThreadUnix.timed\_write** .

*val timed\_write* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> float -\> int**

Behave as  **ThreadUnix.read** and  **ThreadUnix.write** , except that **Unix\_error(ETIMEDOUT,\_,\_)** is raised if no data is available for reading or ready for writing after  **d** seconds. The delay  **d** is given in the fifth argument, in seconds.

*val timed\_write\_substring* :  **Unix.file\_descr -\> string -\> int -\> int -\> float -\> int**

See  **ThreadUnix.timed\_write** .

### Polling

*val select* :  **Unix.file\_descr list -\>** **Unix.file\_descr list -\>** **Unix.file\_descr list -\>** **float -\> Unix.file\_descr list \* Unix.file\_descr list \* Unix.file\_descr list**

### Pipes and redirections

*val pipe* :  **?cloexec:bool -\> unit -\> Unix.file\_descr \* Unix.file\_descr**

*val open\_process\_in* :  **string -\> in\_channel**

*val open\_process\_out* :  **string -\> out\_channel**

*val open\_process* :  **string -\> in\_channel \* out\_channel**

### Time

*val sleep* :  **int -\> unit**

### Sockets

*val socket* :  **?cloexec:bool -\>** **Unix.socket\_domain -\> Unix.socket\_type -\> int -\> Unix.file\_descr**

*val accept* :  **?cloexec:bool -\> Unix.file\_descr -\> Unix.file\_descr \* Unix.sockaddr**

*val connect* :  **Unix.file\_descr -\> Unix.sockaddr -\> unit**

*val recv* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> Unix.msg\_flag list -\> int**

*val recvfrom* :  **Unix.file\_descr -\>** **bytes -\> int -\> int -\> Unix.msg\_flag list -\> int \* Unix.sockaddr**

*val send* :  **Unix.file\_descr -\> bytes -\> int -\> int -\> Unix.msg\_flag list -\> int**

*val send\_substring* :  **Unix.file\_descr -\> string -\> int -\> int -\> Unix.msg\_flag list -\> int**

*val sendto* :  **Unix.file\_descr -\>** **bytes -\> int -\> int -\> Unix.msg\_flag list -\> Unix.sockaddr -\> int**

*val sendto\_substring* :  **Unix.file\_descr -\>** **string -\> int -\> int -\> Unix.msg\_flag list -\> Unix.sockaddr -\> int**

*val open\_connection* :  **Unix.sockaddr -\> in\_channel \* out\_channel**
