[so] [Tema1][Windows] Testul 3

Razvan Crainea razvan.crainea at gmail.com
Sat Mar 24 14:49:23 EET 2012


2012/3/24 Silviu Simon <silviu.simon at gmail.com>:
> On 3/24/2012 9:33 AM, Razvan Crainea wrote:
>>
>> On Sat, Mar 24, 2012 at 1:54 AM, Silviu Simon<silviu.simon at gmail.com>
>>  wrote:
>>>
>>> Cand rulez o comanda, cum ar fi gcc-3&>  error1.txt (o comanda din testul
>>>
>>> 3), sau orice alta comanda al carei executabil nu exista in cygwin,
>>> primesc
>>> un output de genul:
>>> (shell_functions.c, execute_simple_command, 259): CreateProcess: The
>>> system
>>> cannot find the file specified.
>>> si imi iese din program. Este din cauza macrou-ului DIE? Gresesc la
>>> redirectari?
>>
>> Salut, Silviu!
>>
>> Dacă executabilul nu există, este normal ca funcția CreateProcess să
>> îți întoarcă o eroare. Macro-ul DIE este folosit pentru a forța
>> terminarea programului în cazul unei erori. Dar dacă tu nu vrei ca
>> programul tău să se termine, va trebui să tratezi explicit eroare
>> respectivă.
>>
>> PS: gcc-3 cred că ar trebui să existe în cygwin.
>>
> Salut,
> Multumesc pentru raspuns. Ceva nu mi-e clar insa.
>
> gcc-3&>  error1.txt
> Presupunand ca redirectarea mea este corecta, procesul care a fost creat ar
> trebui ca inainte sa se termine sa scrie eroarea in err1.txt? Nu se intampla
> asta. Trebuie sa printez eu eroarea din programul principal in fisierul in
> care a fost redirectata eroarea?
>

Procesul scrie "orbește" la stderr, dar tu înainte să îl pornești ar
trebui să îi redirectezi stdderr-ul într-un fișier. În cazul în care
procesul nu există, ar trebui să printezi tu eroarea din programul
principal, dar la stderr, nu în fișier. Încearcă să rulezi comenzile
respective în cygwin și să vezi rezultatul.

Spor!

-- 
Răzvan Crainea


More information about the so mailing list