#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>

#define  MAX 100

int main(int ac, char *av[])
{
  void obslugaINT(int);
  void obslugaQUIT(int);
  char dane[MAX];
  int  ile;
  struct sigaction sigactionInt;
  struct sigaction sigactionQuit;

  sigactionInt.sa_handler = obslugaINT;
  sigactionQuit.sa_handler = obslugaQUIT;

  sigaction(SIGINT, &sigactionInt, NULL);
  sigaction(SIGQUIT, &sigactionQuit, NULL);

  do {
    printf("\nWpisz tekst\n");
    ile = read(0, dane, (MAX-1));
    if ( ile== -1 )
      perror("read zwrocil blad");
    else {
      dane[ile] = '\0';
      printf("Wpisales: %s", dane);
    }
  } 
  while( strncmp( dane, "koniec" , 4 ) != 0 );
  return 0;
}

void obslugaINT(int s)
{
  printf(" Otrzymano sygnal %d .. czekam\n", s );
  sleep(2);
  printf(" Koncze obslugaINT\n");
}

void obslugaQUIT(int s)
{
  printf(" Otrzymano sygnal %d .. czekam\n", s );
  sleep(3);
  printf("  Koncze obslugaQUIT\n");
}



