Semaphore_Problem .Køere ikke helt!
jeg kan ikke få sempoherene til at virke...når jeg kompliere får jeg en del fejl(tolkningsfejl) om at systemet ikke kan genkende det semaforer jeg har brugt.er der nogen der fortælle mig hvad der er galt med denne program???
//Semaphore version;
#include <time.h>
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/types.h>
const int MAXKUNDER=3;
const int MAXNUMMER=6;
int tur=0;
int billetNummer=0;
semaphore butikIkkeFuld;
semaphore broed, penge, bestilling;
semaphore billetMaskine;
semaphore ventekoe[MAXNUMMER];
void kunde()
{
int mitNummer;
wait(butikIkkeFuld); //vent udenfor, hvis biks er fuld
wait(billetMaskine); //tag et nummer
mitNummer=billetNummer;
billetNummer=(billetNummer+1) %MAXNUMMER;
signal(billetMaskine);
wait(ventekoe[mitNummer]); //vent til min tur
signal(bestilling); //afgiv bestilling
wait(broed); //koeb broed
signal(penge);
cout <<"takker " << mitNummer <<"\n";
signal(butikIkkeFuld); //forlad butikken
return 0;
}
void bager()
{
int fyraften=0;
while(fyraften<15) { //15=antal kunde processer
cout <<"Naeste!\n";
signal(ventekoe[fyraften%MAXNUMMER]);
wait(bestilling); //vent paa ordre
cout <<"Vaersaa artig\n";
signal(broed);
wait(penge);
fyraften++;
}
}
int main() {
int i;
initialsem(butikIkkeFuld,MAXKUNDER);
initialsem(billetMaskine,1);
initialsem(broed,0);
initialsem(penge,0);
initialsem(bestilling,0);
for(i=0;i<MAXNUMMER;i++){
initialsem(ventekoe[i],0);
}
cobegin
{
kunde();kunde();kunde();
kunde();kunde();kunde();
kunde();kunde();kunde();
kunde();kunde();kunde();
kunde();kunde();kunde();
bager();
}
}