Wie erhalte ich mehrere Anrufe zu sem_open Entwicklung in C?

Erlebe ich eine Menge Schwierigkeiten bei der Semaphoren zu arbeiten, auf ein Linux-basiertes system in C.

Den Prozess der meine Bewerbung ist so:

  1. Anwendung startet
  2. Anwendung Gabeln in Kind/Eltern
  3. Jeder Prozess verwendet sem_open mit einem gemeinsamen Namen zu öffnen, der semaphore.

Wenn ich das erstellen der semaphore vor der Gabelung, es funktioniert gut. Allerdings, Anforderungen hindern mich daran dies zu tun. Wenn ich versuche zu nennen sem_open zum zweiten mal bekomme ich ein "Permission Denied" - Fehler (über errno).

Ist es möglich, dies zu tun, in irgendeiner Weise? Oder gibt es eine Möglichkeit zum öffnen der semaphore in einem Prozess und verwendet ein shared-memory-Mechanismus, zu teilen, mit der Kind-Prozess?

InformationsquelleAutor | 2010-02-19
Schreibe einen Kommentar