summaryrefslogtreecommitdiff
path: root/tests/ouch.c
blob: c2925c6a473daaf60628a7515b00ea21be0a2eb3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

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

void trap()
{
   write(1, "Ouch!!\n", 7);
}

main()
{
   char buf[2];
   int cc;

   signal(SIGINT, trap);
   while( (cc=read(0, buf, 1)) > 0 || (cc == -1 && errno == EINTR) )
   {
      if( cc < 0 )
      fprintf(stderr, "INTR\n");
      else
      fprintf(stderr, "%x\n", buf[0]);
   }

   
   write(1, "\nExit!\n", 7);
}