Angenommen, ich habe
node foo.js | node bar.js
gibt es eine Möglichkeit, einen Handle auf Foo's Standardeingabe an Bar zu übergeben?
In meinem seltenen Fall möchte ich in der Pipeline rückwärts kommunizieren.
Zumindest weiß ich, dass ich node bar.js die PID von node foo.js senden kann. Mit dieser PID sollte ich unter *nix in der Lage sein, mit folgendem Befehl in foos Standardeingabe zu schreiben:
/proc/<pid>/fd/0
aber gibt es eine Möglichkeit, dasselbe unter MacOS zu tun?
Antwort1
Im Allgemeinen nicht, da der Schreib-Handle des Standardeingabevorgangs foo
nur in den Händen des übergeordneten Prozesses liegt (der foo
nur den Lese-Handle sieht). Sie müssen eine spezielle Pipe (anonym oder FIFO) zwischen den beiden einrichten. Dies ist jedoch sowieso besser, da Sie nicht wissen, was passieren würde, wenn bar
gleichzeitig mit foo
dem übergeordneten Handle von auf diesen Handle geschrieben würde.