Avatar billede hotmoller Nybegynder
26. december 2003 - 04:29 Der er 3 kommentarer og
1 løsning

hjælp til forståelse af funktionen signal()

Hej eksperter.

Er der nogen der kan forklare funktionen signal() for mig (stdio.h), gerne med et mindre program-eksempel.

mvh/
Avatar billede arne_v Ekspert
26. december 2003 - 11:24 #1
signal er en unix inspireret måde at fange events på.

Simpelt eksempel:

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

void sighandl(int sig)
{
  if(sig==SIGINT)
  {
      printf("CTRL/C was pressed\n");
      exit(0);
  }
  if(sig==SIGSEGV)
  {
      printf("Illegal memory access was attempted\n");
      exit(0);
  }
}


int main()
{
  char buf[80],*p;
  signal(SIGSEGV,sighandl);
  signal(SIGINT,sighandl);
  printf("Press enter or CTRL/C\n");
  fgets(buf,sizeof(buf),stdin);
  p = NULL;
  *p = 'A';
  return 0;
}
Avatar billede hotmoller Nybegynder
26. december 2003 - 11:32 #2
Hej arne.

Tak for svaret - det skal jeg lige gransk lidt mere :)

Som du måske har bemærket er det ikke første gang jeg stiller spørgsmål af denne type. Har en lærebog som utvivlsom er god men også ret svær (Beginnig Linux Programming 2 edt (WROX)). Kender du til en blidere/supplerende mellemvej, dvs. en bog som omhandler det samme, men krydret med en del flere eksempler.

Nå, jeg ovenstående når jeg har lidt bedre tid.

Tak for hjælpen
Avatar billede hotmoller Nybegynder
26. december 2003 - 11:33 #3
...jeg [læser på] ovenstående når jeg.........
Avatar billede arne_v Ekspert
26. december 2003 - 12:08 #4
Wrox's bøger plejer faktisk at være gode.

Jeg kender dog ikke den der.

Herbert Schildts bøger får C/C++ feinschmeckere til at rynke på næsen
fordi der er en del fejl i dem (void main og den slags).

Men de er faktisk ret pædagogiske og gode til at forklare.
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