#include /* For O_* constants */ #include /* For mode constants */ #include #include #include #include #include #include "nombres.h" using namespace std; static void agente(sem_t *[]); int main(void) { sem_t *semaforos[nSEM]; for (int i = 0; i < nSEM; ++i) { semaforos[i] = sem_open(nombres[i], 0); } agente(semaforos); return EXIT_SUCCESS; } static void agente(sem_t *semaforos[]) { for (;;) { cout << "Ofertando" << endl; int fumador = rand() % 3; sem_post(semaforos[fumador]); sem_wait(semaforos[nSEM - 1]); } }