#include #include #include #include #include #include "shmem.h" main() { int shmid; int n; char cmd[50], linie[10]; struct memorie *mem; FILE *p; shmid = shmget(KEYM, 0, 0); if (shmid<0) perror("err. la shmget:"); mem = (struct memorie*) shmat(shmid, 0, 0); if (mem==NULL) perror("err. la atasare de memorie:"); while (mem->gata_client != 1) sleep(1); n = -1; sprintf(cmd, "ps -U %s 2>/dev/null | wc -l", mem->user); p = popen(cmd, "r"); if (p!=NULL) fgets(linie, 10, p); n = atoi(linie); pclose(p); mem->nr = n; mem->gata_server = 1; shmdt(mem); }