# process.stdout

## 功能

读取已启动子进程 stdout 管道的状态对象。

## 语法

```bt
process(program).child().stdout()
```

## 参数

无参数。

## 返回值

| 类型 | 说明 |
| ------ | ------ |
| Object | 返回 stdout 管道状态对象。 |
| Empty | 未启动子进程，或子进程没有 stdout 管道。 |

## 状态对象字段

| 字段 | 类型 | 说明 |
| ------ | ------ | ------ |
| kind | String | 固定为 `stdout`。 |
| available | Int | 当前已缓冲、尚未被 stdout_read 取走的字节数。 |
| closed | Bool | stdout 管道是否已经关闭。 |
| overflow | Bool | 是否已经超过 BT_PROCESS_PIPE_LIMIT。 |
| total_read | Int | 后台读取线程累计从 stdout 读取到的字节数。 |
| limit | Int | 当前 stdout 管道累计读取上限。 |
| read_chunk | Int | 单次读取块大小。 |
| timeout_ms | Int | 脚本读取等待超时时间。 |

## 示例

```bt
if BT.OS == 'windows' {
    cmd = process('cmd').args(['/C', 'echo BT']).child()
} else {
    cmd = process('sh').args(['-c', 'printf BT']).child()
}

cmd.wait()
info = cmd.stdout()
result = info.kind

// 输出：stdout
print result
```

## 注意事项

- stdout() 只返回管道状态，不消费缓冲数据。
- child() 默认打开 stdout/stderr 管道；inherit_stdio() 或 null_stdio() 启动的子进程没有可读 stdout 管道。
- 默认 BT_PROCESS_PIPE_LIMIT 为 1048576 字节，BT_PROCESS_PIPE_READ_CHUNK 为 8192 字节，BT_PROCESS_PIPE_TIMEOUT_MS 为 100 毫秒。
