Comunicare inter-procese în UNIX - partea I

Exemple

Probleme

  1. Scrieți un program care așteaptă indefinit și nu poate fi omorât cu SIGTERM. Mai poate fi oprit?
  2. Scrieți un program care afișează data + ora curentă când primește semnalul HUP (signal(), time() + ctime()).
    1. Scrieți un program care fork()-uie un proces copil, citește de la tastatură două numere și le trimite către copil. Copilul primește numerele, calculează și afișează suma (fork, pipe, write, read).
    2. Modificați programul astfel încât copilul să returneze suma către părinte și acesta din urmă să facă afișarea.
  3. Scrieți un program care lansează două procese copil și apoi citește cuvinte de la tastatură până când primește un șir gol. Cuvintele ce conțin diftongul “oa” le va transmite prin pipe primului copil, restul celui de-al doilea; fiecare copil va contoriza lungimea totală a cuvintelor primite și o va afișa la final (fork, gets, strstr, strlen).
  4. Scrieți un program ce primește doi parametri: un cuvânt și un nume de fișier. Va rula grep pentru a extrage liniile ce conțin cuvântul dat din fișier și va afișa dintre acele linii doar cele ce au lungime multiplu de 3 (fork +
  1. Rescrieți soluția problemei 3 folosind pipe-ul cu nume (FIFO) /tmp/pb6 (mkfifo, fopen, unlink).

Referințe