LINUX.ORG.RU

Что значит - зависает? Байт не приходит? Может стоит использовать select/poll и неблокирующий режим?

vga ★★
()
Ответ на: комментарий от vga

Не блокирующий сейчас попробую.. а зависает на мертво.. сигнал аларм посылаю и не отвесает.. в коде чтото типа токого

void al( int signum ) {
printf( «alarm\n» ); // знаю что не реунтертабельная фенкция
}

sighal( SIGALRM, al );

сhar a;
alarm( 1 );
int result = read( ttyfd, &a, 1 );
if( -1 >= result ) {
// проверка ошибок
}
// Сробатывает аларм но дальше не идёт.. :-(
alarm( 0 );

alexsy ★★
() автор топика
Ответ на: комментарий от alexsy

read и некоторые другие системные вызовы автоматически перезапускаются после получения сигнала, если мне не изменяет память.

Olegymous ★★★
()
Ответ на: комментарий от Olegymous

Да помнится читал.. чтото. но там каието действия нужно сделать. чтоб это было

alexsy ★★
() автор топика
Ответ на: комментарий от Olegymous

Через siginterrupt вклюается остановка системного вызова. Появляется ошибка EINTR.

gamecoder
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.