/* Deschide un segment de memorie partajata indicat de mp. * Dupa deschidere, tipareste o linie cu 'C' de n ori, * schimba aleator n, asteapta un timp, apoi reia tiparirea */ #include "shm_litera.h" main () { int i, f; struct segment *mp; if ((f = shmget (CHEIE, 0, 0)) < 0) err_sys ("Nu se poate deschide shm"); if ((mp = (struct shm_info *) shmat (f, 0, 0)) == NULL) err_sys ("Nu se poate atasa adresa"); /* Fixeaza aleator, continut pentru segment si tipareste*/ for (;; sleep (rand () % 2)) { for (i = 0; i < mp->n; i++) putchar (mp->c); putchar ('\n'); mp->n = 1 + rand () % 50; mp->c = 'C'; } }