[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