que estoy experimentando muchas dificultades para conseguir semáforos para trabajar en un sistema basado en Linux en C.¿Cómo puedo obtener múltiples llamadas a sem_open trabajando en C?
El proceso de mi solicitud es tal:
- aplicación se inicia
- horquillas de aplicación en los niños/padre
- Cada proceso usa
sem_open
con un nombre común para abrir el semáforo.
Si creo el semáforo antes de bifurcar, funciona bien. Sin embargo, los requisitos me impiden hacerlo. Cuando intento llamar al sem_open
por segunda vez, aparece el error "Permiso denegado" (a través del errno
).
¿Es posible hacer esto de alguna manera? ¿O hay alguna forma de abrir el semáforo en un proceso y utilizar un mecanismo de memoria compartida para compartirlo con el proceso secundario?
Estaba usando la versión de cuatro argumentos, pero mis permisos eran incorrectos. Parece que 'O_RDWR' no es el indicador de permisos para usar, a pesar de aparecer en todos los ejemplos que pude encontrar. Muchas gracias. –