On 01 Apr 2015, at 12:15, Andrei Tuicu 
<[email protected]<mailto:[email protected]>> wrote:


În data de 1 aprilie 2015, 12:08, Radu MALUŞ 
<[email protected]<mailto:[email protected]>> a scris:

> On 01 Apr 2015, at 00:34, Adrian Stanciu 
> <[email protected]<mailto:[email protected]>> wrote:
>
> 2015-03-31 23:48 GMT+03:00 Radu MALUŞ 
> <[email protected]<mailto:[email protected]>>:
>> Salut,
>>
>> Am doua probleme cu testele pentru tema 2.
>>
>> Prima e in legatura cu testul 4: Testing append redirect operators
>> Este singurul care imi pica, rulat pe masina virtuala.
>> Am observat ca nu am output corect pentru comanda: ./main &> out2.txt unde, 
>> in fisierul rezultat nu am decat output-ul iesirii standard, nu si a iesirii 
>> de eroare standard.
>> Se pare ca problema vine de la io_flags, valoare care nu e setata nici pe 
>> IO_OUT_APPEND nici pe IO_ERR_APPEND si, cred eu, din cauza asta fisierul in 
>> care se face redirectarea este rescris la a doua redirectare.
>> Ar trebui sa ma astept sa am setat io_flags? Nu ar trebui sa aiba una din 
>> cele doua valori de mai sus in cazul redirectarii multiple (adica si stdout 
>> si err)?
>>
>
> Câmpul io_flags va avea ambii bi?i seta?i în cazul prezentat de tine.
>
>> A doua e in legatura cu testul 0, unde imi spune "line over 80 characters" 
>> pentru o linie care nu are maimult de 80 de caractere, ci are 73.
>> Nu inteleg de unde vine eroarea. Caracterele tab nu sunt numarate ca avand 4 
>> spatii?
>>
>
> Implicit tab-ul este de 8 caractere. Depinde cum e la tine.
>
>
> Adrian

Multumesc pentru raspunsuri.
Partea cu lungimea liniei am rezolvat-o.

In schimb la io_flags, probabil nu fac eu ceva bine. Nu imi este setat niciun 
flag in cazul testului mentionat mai sus.
Verificarea flag-urilor este ca in exemplul din DisplayStructure.cpp: 
s->io_flags & IO_OUT_APPEND.

Salut!

Operatorul &> nu scrie in modul append, de aceea nu vei avea setat niciun bit 
in io_flags, ceea ce face in schimb e sa-ti redirecteze atat STDOUT-ul cat si 
STDERR-ul la _acelasi_ fisier. Cel mai probabil tu nu verifici ca cele 2 
string-uri sunt egale si deschizi de 2 ori fisierul, iar in loc sa dai dup2 pe 
acelasi _descriptor_ de fisier, dai dup2 pe 2 descriptori de fisier diferiti 
care doar refera acelasi fisier. Aceasta este singura explicatie pe care o vad 
pentru comportamentul descris de tine; l-am avut si eu.

Cheers,
Andrei Tuicu


Radu Malus
CC332
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii


Salut,

Ai dreptate, am omis acest aspect.
Multumesc mult!


Radu
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui