|
|||||||||||||||||||||||||||
> > #!/usr/bin/perl -w
> > system('firstprog');
> > system('secondprog');
> > system('thirdprog');
>
> Jeg har måske misforstået noget mht system() kommandoen. Jeg var ikke
> klar over at system() først returnerede, når programmet var færdigt. Jeg
> var bange for at alle 3 programmer i dit eksempel ville starte
> sideløbende, men det gør de åbentbart ikke.
Nej, i ovenstående eksempel venter de tre programer pænt på hinanden.
Hvis man vil starte programmerne så de kører sideløbende skal man skrive
noget i stil med
do {system('firstprog'); exit()} if fork eq "0";
do {system('secondprog'); exit()} if fork eq "0";
do {system('thirdprog'); exit()} if fork eq "0";
eller endda
exec('firstprog') if fork eq "0";
etc.
> Helt konkret, skal jeg ændre i en tekstfil og det dur ikke at alle 3
> programmer laver ændringer samtidigt og derefter overskriver, hvad
> hinanden har lavet. Derfor er jeg nødt til at være sikker på, at første
> program er færdigt, før det næste går i gang.
Så skal du bare bruge system(). Vær lige opmærksom på at hvis du har
brug for at kigge på de returkoder programmerne afslutter med, så skal
du dividere system()'s returværdi med 256.
> Kan man udgive et perl-program under GPL?
Selv om Perl's source er under The Artistic License, kan du godt
GPL'e de programmer du selv skriver i perl.
- Peter
--
ln -s /dev/random ~/.plan
|
||||||||||||||
|
||||||||||||||