subprocess.stdio
- 类型:<Array>
一个稀疏的管道数组用于子进程,与你传递给 child_process.spawn() 的 stdio 选项中被设置为 'pipe' 值的位置对应。subprocess.stdio[0]、subprocess.stdio[1] 和 subprocess.stdio[2] 也可以分别作为 subprocess.stdin、subprocess.stdout 和 subprocess.stderr 使用。
🌐 A sparse array of pipes to the child process, corresponding with positions in
the stdio option passed to child_process.spawn() that have been set
to the value 'pipe'. subprocess.stdio[0], subprocess.stdio[1], and
subprocess.stdio[2] are also available as subprocess.stdin,
subprocess.stdout, and subprocess.stderr, respectively.
在以下示例中,只有子进程的文件描述符 1(标准输出)被配置为管道,因此只有父进程的 subprocess.stdio[1] 是一个流,数组中的其他值都是 null。
🌐 In the following example, only the child's fd 1 (stdout) is configured as a
pipe, so only the parent's subprocess.stdio[1] is a stream, all other values
in the array are null.
const assert = require('node:assert'); const fs = require('node:fs'); const child_process = require('node:child_process'); const subprocess = child_process.spawn('ls', { stdio: [ 0, // Use parent's stdin for child. 'pipe', // Pipe child's stdout to parent. fs.openSync('err.out', 'w'), // Direct child's stderr to a file. ], }); assert.strictEqual(subprocess.stdio[0], null); assert.strictEqual(subprocess.stdio[0], subprocess.stdin); assert(subprocess.stdout); assert.strictEqual(subprocess.stdio[1], subprocess.stdout); assert.strictEqual(subprocess.stdio[2], null); assert.strictEqual(subprocess.stdio[2], subprocess.stderr);import assert from 'node:assert'; import fs from 'node:fs'; import child_process from 'node:child_process'; const subprocess = child_process.spawn('ls', { stdio: [ 0, // Use parent's stdin for child. 'pipe', // Pipe child's stdout to parent. fs.openSync('err.out', 'w'), // Direct child's stderr to a file. ], }); assert.strictEqual(subprocess.stdio[0], null); assert.strictEqual(subprocess.stdio[0], subprocess.stdin); assert(subprocess.stdout); assert.strictEqual(subprocess.stdio[1], subprocess.stdout); assert.strictEqual(subprocess.stdio[2], null); assert.strictEqual(subprocess.stdio[2], subprocess.stderr);
subprocess.stdio 属性可能是 undefined,如果子进程无法成功启动。
🌐 The subprocess.stdio property can be undefined if the child process could
not be successfully spawned.