Semaphoren



  • Servus,
    ich muss mich seit Neustem mit Semaphoren rumschlagen und bräuchte mal etwas Hilfe!
    Hier ein kleines (nicht funktionierendes) Beispiel:

    #include <iostream> 
    #include <semaphore.h> 
    
    using namespace std; 
    
    sem_t sem; 
    int konten[100]; 
    
    int buchen (int KNr, int betrag) { 
        sem_wait(&sem); 
    
        int alt= konten[KNr]; 
        int neu = alt + betrag; 
        konten[KNr] = neu; 
    
        sem_post(&sem); 
    }//buchen 
    
    int main(int argc, char* argv[]) { 
    
        cout << "Welcome...\n"; 
        sem_init(&sem, 0, 1); 
    
        buchen(20, 100); 
    
        return 0; 
    
    }//main
    

    Der Compiler (g++ und Suse Linux) meckert aber, dass er er die Funktionen sem_init(), sem_post() und sem_wait() nicht kennt. Sind das keine bereitgestellten Funktionen der includierten semaphore.h???
    Wie bekomme ich dieses Bsp. zum Laufen?

    Danke,

    Sietsch.



  • Hier die Lösung:

    g++ -c SOURCE.cpp -lpthread
    g++ -o OUTPUT *.o -lpthread

    Gruß,

    Sietsch.


Anmelden zum Antworten