Shared Memory + Semaphor



  • Servus,

    ich habe hier zwei Prozesse mit fork erzeugt. Einer davon soll zwei Zahlen einlesen, in einen gemeinsamen Speicher (shmget) schreiben und der andere soll dann den gemeinsamen Speicher lesen und die Zahlen ausgeben.

    Natürlich brauche ich einen Mechanismus zur Synchronisierung und deshalb habe ich einfach mal zwei Semephores erstellt (einer wird vom ersten Prozess verringert und vom anderen erhöht und umgekehrt).

    Das Problem ist, dass ich keine Ahnung habe, wie ich auch die Semaphores synchronisieren kann. Ich habe sie als globale Variablen erstellt, aber trotzdem kommen die sem_waits und sem_posts nicht im jeweils anderen Prozess an.

    Wie kann ich Semaphores zwischen zwei Proztessen austauschen?

    Lg
    Stefan



  • Ok, ich habs.

    Man muss "einfach" die sem_t - Variablen, mit denen man die Semaphores später ansprechen will, in den Shared memory packen. Globale Variablen würden nur bei Threads funktionieren, aber ich habe ja Prozesse...



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten