# TtyTermiosBinding

`import { TtyTermiosBinding } from "destack:tty/binding";`

Termios binding family.

```ds title="TtyTermiosBinding"
export interface TtyTermiosBinding {
    readTermiosAttributes(tty: TtyHandle): Result<TermiosAttributes, HostError>;
    setTermiosAttributes(tty: TtyHandle, attributes: &'a readonly TermiosAttributes, action: TermiosSetAction): Result<void, HostError>;
    drainTermios(tty: TtyHandle): Result<void, HostError>;
    flushTermios(tty: TtyHandle, queue: TermiosQueue): Result<void, HostError>;
    flowTermios(tty: TtyHandle, action: TermiosFlowAction): Result<void, HostError>;
    sendTermiosBreak(tty: TtyHandle, duration: uint32): Result<void, HostError>;
    readTermiosProcessGroup(tty: TtyHandle): Result<ProcessId, HostError>;
    setTermiosProcessGroup(tty: TtyHandle, processGroupId: ProcessId): Result<void, HostError>;
}
```

[language/library/src/tty/binding/termios.ds:56:132](https://github.com/destack-sh/destack/blob/main/language/library/src/tty/binding/termios.ds#L56-L132)

## Members

### `readTermiosAttributes(tty: TtyHandle): Result<TermiosAttributes, HostError>`

Read full POSIX termios attributes.

### `setTermiosAttributes(tty: TtyHandle, attributes: &'a readonly TermiosAttributes, action: TermiosSetAction): Result<void, HostError>`

Apply full termios attributes to one terminal handle.

### `drainTermios(tty: TtyHandle): Result<void, HostError>`

Wait for pending output to drain on one terminal handle.

### `flushTermios(tty: TtyHandle, queue: TermiosQueue): Result<void, HostError>`

Flush one terminal queue.

### `flowTermios(tty: TtyHandle, action: TermiosFlowAction): Result<void, HostError>`

Apply terminal flow control action.

### `sendTermiosBreak(tty: TtyHandle, duration: uint32): Result<void, HostError>`

Send one terminal break condition.

### `readTermiosProcessGroup(tty: TtyHandle): Result<ProcessId, HostError>`

Read controlling terminal process group id.

### `setTermiosProcessGroup(tty: TtyHandle, processGroupId: ProcessId): Result<void, HostError>`

Set controlling terminal process group id.
