Прерывание заблокированного чтения

Моя программа проходит такой цикл:

...
while(1){
  read(sockfd,buf,sizeof(buf));
  ...
}

Функция чтения блокируется, когда она ожидает ввода, который, как оказалось, поступает из сокета. Я хочу обработать SIGINT и в основном сказать ему, чтобы он остановил функцию чтения, если он читает, а затем вызовет произвольную функцию. Как лучше всего это сделать?

14
задан kaykun 6 June 2011 в 08:47
поделиться