IPC :: Pijplijn

Maak een shell-achtige pijplijn van vele lopende opdrachten
Download nu

IPC :: Pijplijn Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Naam uitgever:
  • Erin Sch?nhals
  • Uitgever website:
  • http://search.cpan.org/~wrath/

IPC :: Pijplijn Tags


IPC :: Pijplijn Beschrijving

Maak een shell-achtige pijpleiding van vele lopende opdrachten Vergelijkbaar in het Calling Convention to IPC :: Open3, het eerste kind aansluiten op de First_Chld_in-handvat, pijpleiding () spawns n-kinderen, het laatste kind naar Last_Chld_out, en elk kind naar een gedeelde standaardfouthandgreep, kinderen_rr. Elke daaropvolgende opdracht gespecificeerde zorgt ervoor dat een nieuw proces vork () ed is. Elk proces is gekoppeld aan de laatste met een bestandsdescriptorpaar die is gemaakt door pijp (), met behulp van DUP2 () om elk proces 'standaardinvoer op de laatste standaarduitgang te keten. De opdrachten die zijn opgegeven in de anonieme arrays die zijn aangenomen, worden gestart in de kinderprocessen met een SIMPLE EXEC () Call.IF Fileglobs of numerieke bestandsdescriptoren worden doorgegeven in een van de drie positionele parameters, dan worden ze gedupliceerd op de toegewezen bestandshandels resultaat van de pipelining van het proces. Anders wordt de eenvoudige scalaire toewijzing uitgevoerd. Houd er rekening mee dat elk gebruik van numerieke bestandsdescriptoren zal resulteren in een impliciete import van POSIX :: DUP2 () bij runtime.Like IPC :: Open3, Pipeline () Retourneert onmiddellijk na het paaien van het proces Ketting, hoewel het enigszins afwijkt dat de ID's van elk proces wordt geretourneerd in volgorde van specificatie in een lijst wanneer de array-context wordt genoemd. Wanneer alleen de ID van Scalaire context wordt opgeroepen, wordt alleen de ID van het eerste kindsproces teruggestuurd. Ook zoals IPC :: Open3, kan men SELECT () gebruiken aan multiplex lezen en schrijven aan elk van de handgrepen die worden geretourneerd door Pipeline (), bij voorkeur met niet -bufferde sysread () en syswrite () oproepen. Met behulp van dit om het lezen van het leesnormuitgang en de fout van de kinderen is ideaal, omdat blokkerende en bufferingoverwegingen worden verlicht. Als een kinderproces vroegtijdig sterft, of een van de piped-bestandshendels zijn om welke reden dan ook, erft het callingsproces het kernelgedrag van het ontvangen van een sigpipe, die de installatie van een signaalhandler vereist voor geschikte herstel. Synopsis Gebruik IPC :: Pipeline; Mijn @Pids = Pipeline (\ * First_Chld_in, \ * Last_Chld_out, \ * Kinderen_RERR, , , ... ); ... dingen doen ... mijn @Statuses = kaart {waitpid ($ _, 0); ? >> 8; } @pids; Vereisten: · Perl


IPC :: Pijplijn Gerelateerde software