Inter-Prozeß-Kommunikation (popen)

19 Mai
Termin: 2 Juni (3 Juni)

Dokumentation ueber popen:

Probleme cu procese (popen)

Pentru problemele urmatoare se cere un program C care sa creeze doua procese: un proces server si un proces client. Procesul client va face o cerere serverului, serverul va gasi raspunsul (folosind popen) si il va transmite clientului (printr-un pipe).

1. Clientul transmite serverului un nume de fisier iar serverul intoarce clientului continutul fisierul indicat sau un mesaj de eroare in cazul ca fisierul dorit nu exista.

2. Clientul transmite serverului un nume de utilizator iar serverul intoarce clientului numele statiei pe care lucreaza utilizatorul si ora intrarii in sistem, respectiv un mesaj "Utilizatorul nu este conectat !", daca acesta nu lucreaza.

3. Clientul ii transmite serverului o ora iar serverul ii intoarce numele tuturor utilizatorilor care lucreaza si s-au conectat dupa ora respectiva.

4. Clientul ii transmite serverului un nume de fisier si un numar octal. Serverul va verifica daca fisierul respectiv are drepturi de acces diferite de numarul indicat. Daca drepturile coincid, va transmite mesajul "Totul e OK!"; daca nu, va seta drepturile conform numarului indicat si va transmite mesajul "Drepturile au fost modificate".

5. Clientul ii transmite serverului un nume de director iar serverul ii intoarce clientului continutul directorului indicat, respectiv un mesaj de eroare in cazul in care acest director nu exista.

6. Clientul ii transmite serverului un nume de host, iar serverul verifica daca hostul respectiv este accesibil sau nu, transmitand clientului un mesaj corespunzator.

7. Clientul ii transmite serverului un nume de fisier, iar serverul ii intoarce clientului numele tuturor directoarelor care contin fisierul indicat.

8. Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza informatiile indicate de "finger" pentru utilizatorul respectiv, respectiv un mesaj de eroare daca numele respectiv nu indica un utilizator recunoscut de sistem.

9. Clientul ii transmite serverului o comanda Unix, iar serverul o executa si retransmite clientului rezultatul executiei. In cazul in care comanda este invalida, serverul va transmite un mesaj corespunzator.

10. Clientul ii transmite serverului un nume de utilizator, iar serverul ii returneaza clientului datele la care utilizatorul respectiv s-a conectat si perioadele de timp cat a lucrat.

11. Clientul ii transmite serverului un nume de server Unix, si primeste lista tuturor utilizatorilor care lucreaza in acel moment la serverul respectiv.

12. Clientul ii transmite serverului un nume de host si primeste de la acesta lista tuturor utilizatorilor care s-au conectat de la acel host, data conectarii si intervalul de timp cat au stat conectati.

13. Clientul ii transmite serverului un nume de fisier si primeste de la acesta un mesaj care sa indice tipul fisierului sau un mesaj de eroare in cazul in care fisierul nu exista.

14. Clientul ii transmite serverului un nume de director si primeste de la acesta lista tuturor fisierelor text din directorul respectiv, respectiv un mesaj de eroare daca directorul respectiv nu exista.

15. Clientul ii transmite serverului un text si un nume de director, iar serverul ii retransmite clientului numele tuturor fisierelor text din directorul respectiv care contin textul indicat.