[so] [Tema 1][Linux] Redirectari

Adrian Sendroiu molecula2788 at gmail.com
Tue Mar 26 21:59:52 EET 2013


Mihail Dunaev <ddryhten at gmail.com> writes:

> Salut,
>
> Am observat că pe Linux este o diferenţă între “cmd >file 2>file” şi “cmd &>file”.
> Prima deschide de două ori “file” (doi file descriptori diferiţi) cu O_TRUNC astfel că
> în final în “file” o să avem fie afişările de la stdout, fie cele de la stderr, iar a doua
> foloseşte acelaşi file descriptor, deschizând o singură dată fişierul (deci o să apară
> şi stdout şi stderr). Nu am văzut cum am putea să facem difereţa între cele două
> cazuri folosind parserul oferit (decât dacă am mai face nişte modificări în el).  
>
> Întrebarea mea este : trebuie neapărat să facem diferenţa între cele 2 cazuri ? Am
> observat că trecem toate testele dacă facem implementarea de la “&>” (un singur
> file descriptor, deci şi stdout şi stderr o să apară în fişier), şi picăm un test dacă
> implementăm primul caz :)

Salut

In cazul "&>" o sa ai scmd->out == scmd->err. In celalalt caz cei 2
pointeri o sa fie diferiti, chiar daca stringurile din interior sunt
aceleasi, comparate cu strcmp.

Trece toate testele cu implementarea de la "&>" deoarece nu avem niciun
test care sa faca '>file 2>file'.


More information about the so mailing list