Übergeben Sie den Handle an die Standardeingabe in der Pipeline

Übergeben Sie den Handle an die Standardeingabe in der Pipeline

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 foonur in den Händen des übergeordneten Prozesses liegt (der foonur 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 bargleichzeitig mit foodem übergeordneten Handle von auf diesen Handle geschrieben würde.

verwandte Informationen