Thread Frage zu sysread
(18 answers)
Opened by bianca at 2013-10-01 09:18
Soll das ganze jetzt eigentlich portabel auf allen Systemen laufen, oder reicht eine Lösung, die nur auf Windoof arbeitet?
Ich beginne nämlich, darüber nachzudenken, ob sich portable Workarounds um die großflächigen Funktionslücken der Perl-Standardbibliothek auf Windows überhaupt lohnen, oder ob man eher eine Lösung auf Basis von XS und Win32-API oder zumindest direkt über Win32::API anstreben sollte. Es ist nämlich definitiv möglich, auf Basis von CreatePipe, CreateProcess, SetHandleInformation und WaitForMultipleObjects eine Lösung zu bauen, welche die Standardeingabe, -ausgabe und -fehlerausgabe eines Kindprozesses umleitet und korrekt zwischen den Datenströmen multiplext. Wenn es portabel sein muss, dann würde ich, wie auch bei den Perlmonks an einigen Stellen vorgeschlagen, mal darüber nachdenken, die Kommunikationskanäle des Subprozesses in Sockets der Adressfamilie AF_LOCAL umzuleiten, damit IO::Select und perlfunc sysread auf den entstehenden Handles erwartungsgemäß arbeiten. Allerdings befürchte ich, dass es bei der internen Umsetzung von Sockets auf Win32-Handles auch wieder irgendwelche Reibungsverluste gibt. When C++ is your hammer, every problem looks like your thumb.
|