以下程序产生一个sleep
进程等待一个小时,然后在后台使用sleep
,程序循环将一个字符串写入外部sleep
进程。
我很清楚sleep
根本没有阅读任何内容,只是为了演示目的而选择它。 (A)
我的程序循环279次然后暂停。预计会停止,但我无法弄清楚在精确的279次循环之后会发生什么,就像缓冲区已满。
如果我将"0123456789"
更改为单个"X"
,它仍然会循环279次,所以它不仅仅是一个unix管道被填满。第一个例子设法写入2790个字节,第二个例子在十分之一后停止。
var child_process = require('child_process')
var p = child_process.spawn('/bin/sleep', ['3600']);
var cnt = 0;
function do_tick() {
cnt++;
console.log(cnt);
p.stdin.write("0123456789", null, function(){
setTimeout(do_tick, 1);
});
}
do_tick();
琐碎:LinuxMint 17.2 x86_64,node.js v0.10.25
(A)我的现实世界问题是将PCM音频传送到现场 以适当的速度流动,并且走得太远,更加复杂。