Programare UNIX


1. Mecanismul de creare a proceselor (revisited)

2. Mecanismul fork-exec

3. Apelurile sistem din familia exec

4. Mecanisme de redirectare (stdin/stdout/stderr)

5. Suport pentru mecanismele de redirectare: Duplicarea descriptorilor

6. Exemple: executia programelor, implementarea mecanismului PIPE

 


Laborator 3

Modul de lucru:

Mecanismul fork-exec (vezi exemplul like_system din laboratorul 2).

Tema:

1. Modificarea exemplului like_system pentru a suporta (pre)procesarea liniei de comanda in scopul executiei printr-un apel execv () ; in locul apelului execl curent.

Sirul de caractere care formeaza linia de comanda urmeaza sa fie descompus in componente simple (ex. folosind strtok) si depozitate intr-un tablou de siruri de caractere construit dinamic (strdup, malloc).
Apelul execv va avea forma execvp (argv[0], argv) ;

2. Adaugarea suportului pentru redirectarea intrarii / iesirii in executia comenzilor simple.

Eventualele operatii de redirectare sunt precizate dupa comanda simpla, prin unul din semnele '>' si '<'. Sirul de caractere pana la primul dintre aceste semne reprezinta linia de comanda simpla, utilizabila ca la pct. 1 in timp ce partea de dupa semnul identificat reprezinta operatii de redirectare care urmeaza sa fie rezolvate.