[so] Executie conditionata
Catalin Iacob
iacobcatalin at gmail.com
Wed Oct 31 15:10:19 EET 2007
On 10/31/07, Dan Persa <dan.persa at gmail.com> wrote:
>
> Sal,
>
> Nu am inteles exact cum functioneaza executia conditionata.
>
> Pentru o expresie de genul:
>
> expr1 && expr2
>
> expr2 se executa doar daca expr1 are cod de eroare diferit de 0
In primul rand ai gresit. In enunt scrie "astfel expr1 && expr2 va avea ca
efect executia comenzilor expr2 doar daca comenzile expr1 au ca rezultat un
cod de eroare 0".
Daca un proces se termina cu 0 inseamna ca nu a dat de erori. Daca intoarce
diferit de 0 inseamna ca s-a intors cu eroare. In conditiile astea
semnificatia lui A && B este: executa B doar daca A a mers bine.
Ce spui tu e valabil pentru || nu pentru &&.
Intrebarea mea e, cum se determina codul de eroare al expr1?
Daca expr1 e o comanda simpla, codul cu care se intoarce e clar care e; pe
el il gasesti cu macro-urile de la wait respectiv cu GetExitCodeProcess.
> Sa presupunem ca expr1 = com1 | com2
Daca expr1 e o comanda compusa prin conventie codul cu care se intoarce e
codul de intoarcere al ultimei comenzi simple din componenta ei.
Ruland com1 | com2 && expr2 , sa presupunem ca com1 iese cu cod de eroare
> diferit de 0 iar com 2 iese cu cod de eroare egal cu 0.
In exemplul asta com1 | com2 se intoarce datorita conventiei cu 0.
expr2 se executa sau nu?
Deci expr2 se executa in exemplul tau.
Multumesc,
> Dan
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20071031/281dc341/attachment.htm
More information about the so
mailing list