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 -lpthreadGruß,
Sietsch.