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

void propeller(void)
  {
  /* Aktivitaetsanzeige in Spalte 1 der Zeile */
  static char sign[] = {'|','/','-','\\'};
  static int pos = 0;
  putchar('\r');
  putchar(sign[pos]);
  fflush(stdout); /* sonst sieht man nix */
  pos = (pos + 1) % 4;
  }

void tick (int dummy) /* nur Wecker neu aufziehen */
  { alarm(1); }

void beenden(int dummy)  /* STRG-C behandeln */
  {
  printf("\nHasta la vista, baby!\n");
  exit(0);
  }

int main(void)
  {
  /* Signalhandler aktivieren */
  signal(SIGINT,beenden);
  signal(SIGALRM,tick);
  alarm(1);  /* Wecker aufziehen */
  for (;;)
    {
    pause();  /* auf Signal warten */
    propeller(); /* Anzeigen, dass sich was tut */
    };
  return(0); /* never reached */
  }
