[so] Lamuriri ...
Octavian Purdila
so@cursuri.cs.pub.ro
Mon, 1 Nov 2004 12:16:37 +0200
On Monday 01 November 2004 11:15, Daniel Avieritei wrote:
> typedef struct simple_command {
> word_t *in, *out, *err;
> word_t *words;
> int builtin;
> } simple_command_t;
> in care campurile in, out, err indica fisierul in care / din care trebuie
> redirectat stdin, stderr (probabil s-a vrut sa fie stdout aici) si
> respectiv stderr, campul builtin specifica ca aceasta comanda este una
> builtin (cd sau exit), iar campul words contine comanda de executat.
>
> Shell-ul trebuie de asemenea sa suporte si urmatorii operatori de
> redirectare: "> fisier" pentru redirectarea stdout-ului in fisier ---> deci
> tb sa am un smcd->out (diferit de NULL samd)? "2> fisier" pentru
> redirectarea stderr-ului in fisier ---> deci tb sa am un smcd->err ? "&>
> fisier" pentru redirectarea stdout-ului si a stderr-ului in fisier --->
> deci tb sa am un smcd->out si un smcd->err? "< fisier pentru redirectarea
> stdin-ului din fisier ---> deci tb sa am un smcd->in ?
>
Da.
> Pentru cazul cu &>, scmd->out si scmd->err sunt aceleasi insa tb sa fie
> amandoua acolo ca sa ne putem da seama in ce caz ne incadram, nu? (//quote
> from parser.y
> simple_command REDIRECT_OE separator word { /*caz&>*/
> $1->err=$1->out=$4;
> )
>
Daca intrebarea este: "daca scmd->out si scmd->err sunt aceleasi inseamna ca
avem &>", raspunsul este da. La implementare o sa vedeti insa ca nu aveti
nevoie de aceasta comparatie.
tavi