Avatar billede king-at-run Nybegynder
11. februar 2004 - 18:14 Der er 8 kommentarer og
1 løsning

Semaforer værdi lig med -1

I nedenstående op funktion tjekker vi om semafoeren virker...det gør den ikke...hvad kan det skyldes at vores værdi er lig med -1

void op(int sem_nummer)
{
  struct sembuf sem_b;
  sem_b.sem_num = sem_nummer;
  sem_b.sem_op = 1;
  sem_b.sem_flg = SEM_UNDO;
  if(semop(sem_id, &sem_b,1) == -1)
  printf("Fejl i optælling af semafor nr. %d\n", sem_nummer);
}
Avatar billede phase5 Nybegynder
11. februar 2004 - 20:51 #1
Prøv evt. denne version, og se om det hjælper!!

void op( int sem_nummer)
{
struct sembuf sb[2];    /* vælger DOWN på 2 semaphorer */

sb[0].sem_num = (sem_nummer + 1) % count;
sb[0].sem_op = -1;
sb[0].sem_flg = SEM_UNDO;

sb[1].sem_num = sem_nummer;
sb[1].sem_op = -1;
sb[1].sem_flg = SEM_UNDO;

/* nap dem begge eller vent... */
if( semop( sem, sb, 2 ) == -1 )
  fprintf( stderr, "semop fejl: %s (sem_nummer=%d)\n", strerror( errno ), sem_nummer );
}


Håber det kan bruges..

Morten
Avatar billede king-at-run Nybegynder
11. februar 2004 - 21:07 #2
vi prøver......
Avatar billede king-at-run Nybegynder
11. februar 2004 - 21:10 #3
count er ikke erklæret.. hvor henne skal vi gøre det....
Avatar billede king-at-run Nybegynder
11. februar 2004 - 21:12 #4
hvis vi udkommen.. det der count og kører programmet så får vi en fejl der hedder:

semop fejl: invalid argument (sem_nummer = 0

og længe nede kommer der til at stå sem_nummer = 1 osv...
Avatar billede phase5 Nybegynder
11. februar 2004 - 22:02 #5
Måske vil dette virke

void op( int sem_nummer)
{
struct sembuf sb[1];   


sb[0].sem_num = sem_nummer;
sb[0].sem_op = -1;
sb[0].sem_flg = SEM_UNDO;


if( semop( sem, sb, 1 ) == -1 )
  fprintf( stderr, "semop fejl: %s (sem_nummer=%d)\n", strerror( errno ), sem_nummer );
}
Avatar billede king-at-run Nybegynder
11. februar 2004 - 22:06 #6
Gider du ikke kigge på vores kode og se om du kan finde fejlen til at det ikke virker som det skal... vi har siddet med det i 24 timer... og kan ikke komme videre.... grunden til at vi er i et lidt presserende moment... er at vi skal aflevere det som en del af en opgave fredag kl 12
Avatar billede king-at-run Nybegynder
11. februar 2004 - 22:17 #7
Har vi skræmt dig?
Avatar billede king-at-run Nybegynder
11. februar 2004 - 22:34 #8
Nu får vi en en fejlmeddelse der siger: file to large
Avatar billede king-at-run Nybegynder
12. februar 2006 - 12:39 #9
1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester