Avatar billede king-at-run Nybegynder
09. februar 2004 - 14:28 Der er 6 kommentarer

Problem med union semun?

union semun
{
    int val;
    struct semid_ds *buf;
    unsigned short int *array;
};

Vi er ikke helt med på hvad dette stykke kode betyder. Kan det havde noget af gøre med at vi ikke kan oprette vores semafor sæt?
Avatar billede arne_v Ekspert
09. februar 2004 - 15:03 #1
Den kode "gør" ikke noget. Det er en erklæring fa en type.

Den erklærer en union d.v.s. en struktur hvor felterne ikke ligger efter hinanden
men oven i hinanden.

Den her har 3 felter af typerne:
  int
  pointer til struct semid_ds
  pointer til unsigned short int
Avatar billede king-at-run Nybegynder
09. februar 2004 - 15:17 #2
vi har et program, som compiler fint, men når vi kører det - så har vi lavet et tjek, hvor den tjekker om sem_id == -1. Hvis den er lig med -1 så skriver den at det ikke var muligt at oprette semafor sættet.... og vores program vil så ikke køre, som det skal.. HVis vi udkommentere det omkring sem_id, så kører de to processer på en måde oveni hinanden og det er ikke meningen.

Vi kan ikke rigtig se hvor henne det går galt, men har indsat noget kode, der hvor vi tror det går galt. Her kommer lige et lille udsnit af koden...


//opretter semafor sæt
  sem_id = semget((key_t)1234, 250, 0666 | IPC_CREAT);
 
  //check semafor sæt er ok
  if(sem_id == -1)
  {
    printf("Kunne ikke oprette semafor saet \n");
    exit(0);
  }
 
  //opret semaforer
  for(semnr = 1; semnr < 250; semnr++)
  {
    if(semnr == 242 || semnr == 243)
      sem_union.val = 5;
    else
      sem_union.val = 1;
   
    //sæt semafor værdi
    if(semctl(sem_id, semnr, SETVAL, sem_union) == -1)
    {
    printf("Fejl ved semafor nr %d \n", semnr);
      exit(0);
    }
  }
Avatar billede king-at-run Nybegynder
09. februar 2004 - 15:17 #3
VI troede det måske havde noget at gøre med semun.. men det havde det altså ikke  - derfor håber vi du måske kan hjælpe med det her..
Avatar billede king-at-run Nybegynder
09. februar 2004 - 15:25 #4
nu er det ikke et problem mere - sorry
Avatar billede king-at-run Nybegynder
12. februar 2006 - 12:40 #5
er ved at rydde op i min konto...opret et svar, så jeg kan give point
Avatar billede arne_v Ekspert
12. februar 2006 - 15:34 #6
ok
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