#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <signal.h>
#include <error.h>
void sigio_handler(int signo)
{
char c;
int n = read(0, &c, 1);
if(n == 1)
printf("READ:%d(%c):END\n", c, c);
else
perror("read failed:");
}
int main()
{
signal(SIGIO, sigio_handler);
fcntl(0, F_SETOWN, getpid());
fcntl(0, F_SETSIG, SIGIO);
fcntl(0, F_SETFL, O_ASYNC);
while(1)
{
usleep(1000000);
}
}
评论