process.stdout
process.stdout
功能
读取已启动子进程 stdout 管道的状态对象。
语法
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 | 脚本读取等待超时时间。 |
示例
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 毫秒。