Мы можем выводить строку за строкой на nodejs через потоковую трубу от stdin до stdout , то есть от Читаемые в Доступные для записи поток:
process.stdin.pipe(process.stdout);
Смущает, что он также работает так же, как и раньше, с stdout до stdin , то есть с Доступно для записи до Доступно для чтения поток ниже. Почему?
process.stdout.pipe(process.stdin);
@ EDIT
Аналогичный тест с io.Copy в golang воспроизведен вышеупомянутый вопрос. Похоже, что перекрестная проверка подсказывает, что встроенная реализация pipe не может быть неправильной на обеих действующих платформах.
package main
import (
"io"
"os"
)
func main() {
io.Copy(os.Stdout, os.Stdin)
// io.Copy(os.Stdin, os.Stdout) /* Also works than expected. */
}
@ EDIT 2
Для дальнейшего изучения еще один тест с Deno.copy на третьей платформе deno ведет себя как ожидалось:
Deno.copy(Deno.stdout, Deno.stdin); /* Works as expected. */
// Deno.copy(Deno.stdin, Deno.stdout); /* Fails as expected. */