i have 2 programs communicate using system v shared memory.
both programs work should, add named semaphores avoid race conditions.
i have tried following:
sem_t *sem = sem_open("/semaphorename", o_creat | o_excl, s_irusr | s_iwusr, 0); if(sem == sem_failed){ sem = sem_open("/semaphorename", 0); } while(1){ /*get input user */ sem_wait(sem); /* write shared memory. if quit entered, break while loop */ sem_post(sem); } sem_close(sem); sem_unlink("/semaphorename"); without semaphores, programs work, them, nothing written shared memory. doing wrong , possible use these semaphores when using system v shared memory?
since initial value of semaphore 0, sem_wait() wait forever until sem_post(). initialise semaphore single sem_post() in 1 of programs.
Comments
Post a Comment