I have implemented two applications that share data using the POSIX shared memory API (i.e. shm_open). One process updates data stored in the shared memory segment
shm_open
Rather than a System V semaphore, I would go with a POSIX named semaphore using sem_open(), etc.
sem_open()