From serhio la programmer.net Thu Sep 7 02:37:09 2006 From: serhio la programmer.net (Sergiu Mihai) Date: Thu, 07 Sep 2006 11:37:09 +0200 Subject: [Chisinau-pm] Procesele in Perl Message-ID: <20060907093709.A795E1F50B1@ws1-2.us4.outblaze.com> Salut tuturor. Incerc sa clonez un proces. Utilizez functia standarta fork() care returneaza parintelui PID-ul fiului si 0 procesului-fiu. Am incercat prin teste sa inteleg cum ruleaza dar n-am mai priceput. Exemplu: #!/usr/bin/perl print "Programul parinte\n"; print "PID-ul fiului este ".fork()."\n"; for($i=0;$i<=5;$i++) { print "$i\n"; } Rezultat: Programul parinte PID-ul fiului este 0 0 1 2 3 4 5 PID-ul fiului este 10742 0 1 2 3 4 5 paranoik la paranoik-desktop:/home/test$ de aici trag concluzie ca primul se executa fiul si apoi continua tatal. La sfirsitul programului am pus sleep() si iata rezultatul: Programul parinte PID-ul fiului este 0 0 1 2 3 4 5 PID-ul fiului este 10742 0 1 2 3 4 5 ... adica aici programul se suspenda, care din ei? trebuie ambii , nu? Ma ajuta cineva? -- ___________________________________________________ Play 100s of games for FREE! http://games.mail.com/ From alexchorny la gmail.com Thu Sep 7 10:13:58 2006 From: alexchorny la gmail.com (Alexandr Ciornii) Date: Thu, 7 Sep 2006 20:13:58 +0300 Subject: [Chisinau-pm] Procesele in Perl In-Reply-To: <20060907093709.A795E1F50B1@ws1-2.us4.outblaze.com> References: <20060907093709.A795E1F50B1@ws1-2.us4.outblaze.com> Message-ID: <2f1541220609071013n4f3eb667vd9d6c65a7cdf2ee@mail.gmail.com> HI! 2006/9/7, Sergiu Mihai : > Salut tuturor. > Incerc sa clonez un proces. > Utilizez functia standarta fork() care returneaza parintelui PID-ul fiului si 0 procesului-fiu. > Am incercat prin teste sa inteleg cum ruleaza dar n-am mai priceput. ??? ???????, ??? ? ???????? ??????????, ????? ??????? ?????? ??????????? ??????. ???? ?? ????? ??????????? ?? ??????????????. ????????, ??? ????????? ???????????? ? ????? fork, ? ????????? ????????? ???: #!/usr/bin/perl -w print "Programul parinte\n"; $a=fork(); print "PID-ul fiului este ".$a."\n"; for($i=0;$i<=5;$i++) { print "$i\n"; } ?? ? ???? ?????????? ?????? ??? ??????? ??????. ??? ?????????????. ?????? ? ???????? ??? Windows, ? ??? fork ?????????? ????? ??????. -- Alexandr Ciornii, http://chorny.net From comendantc la yahoo.com Sat Sep 9 13:28:42 2006 From: comendantc la yahoo.com (Costea Comendant) Date: Sun, 10 Sep 2006 00:28:42 +0400 (MSD) Subject: [Chisinau-pm] =?koi8-r?b?79TXxdQ6IFJlOiAgUHJvY2VzZWxlIGluIFBlcmw=?= In-Reply-To: <2f1541220609071013n4f3eb667vd9d6c65a7cdf2ee@mail.gmail.com> Message-ID: <20060909202842.85588.qmail@web54512.mail.yahoo.com> --- Alexandr Ciornii ?????: > HI! > > 2006/9/7, Sergiu Mihai : > > Salut tuturor. > > Incerc sa clonez un proces. > > Utilizez functia standarta fork() care returneaza > parintelui PID-ul fiului si 0 procesului-fiu. > > Am incercat prin teste sa inteleg cum ruleaza dar > n-am mai priceput. > > ??? ???????, ??? ? ???????? ??????????, ????? > ??????? ?????? > ??????????? ??????. ???? ?? ????? ??????????? ?? > ??????????????. > ????????, ??? ????????? ???????????? ? ????? fork, ? > ????????? ????????? ???: > #!/usr/bin/perl -w > > print "Programul parinte\n"; > $a=fork(); > print "PID-ul fiului este ".$a."\n"; > for($i=0;$i<=5;$i++) > { > print "$i\n"; > } > > ?? ? ???? ?????????? ?????? ??? ??????? ??????. ??? > ?????????????. > ?????? ? ???????? ??? Windows, ? ??? fork ?????????? > ????? ??????. In general aceste doua exemple (al tau si al lui Alexandr) sint identice. Intr-adevar nu poti spune precis care din procese se va executa mai devreme, cu sau fara sleep(). Rezultatele vor fi diferite si pe Unix, si pe Windows daca vei incerca sa executi de mai multe ori programul (cred ca statistic distributia va fi 50/50). In general, nu prea am inteles ce anume nu ti-i clar, deoarece totul este corect (desi nu stiu la ce te asteptai). Cele bune, Costea. ________________________________________________________ ?? ??? ? Yahoo!? ????????? ??????????? ? ??????????. Yahoo! ?????! http://ru.mail.yahoo.com