gpt4 book ai didi

Node.js:为什么来自 cmd/c dir spawn 的数据事件不输出 'line by line' ?

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:18 25 4
gpt4 key购买 nike

考虑下面这个 node.js 应用程序:

var spawn = require('child_process').spawn,
dir = spawn('dir', ['*.txt', '/b', '/s']);

dir.stdout.on('data', function (data) {
//(A)
console.log('stdout: ' + data);
});

在 (A) 中,on data 事件等待 stdout 输出,我们可以想象输出是来自 cmd/c 的“逐行”目录 *.txt/b/s.

但这并没有发生。在 data 变量中,stdout 输出包含不止一行,为了处理每个文件路径的某些内容,我们必须按 CRLF 拆分 (\r\n)。为什么会发生这种情况?

最佳答案

因为这只是来自子进程标准输出的纯数据流。不知道该数据是否采用任何特定格式,或者是否包含任何特定字符。因此,数据被视为字节流,并以 block 的形式处理,而不考虑这些字节的内容或含义。这是系统中管道数据最通用的形式。但请注意,有一些包装器流将缓冲原始数据流并为您提供一系列文本行。 You will find many modules for this on npmjs.org

关于Node.js:为什么来自 cmd/c dir spawn 的数据事件不输出 'line by line' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17789536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com