int fifo_out = open (pathname, O_RDONLY);int bytes = read(fifo_out, (void *)&info_data, sizeof(InfoData));
C++ (Qt)// Запускается таймер на необходимый интервал, когда он срабатывает, вызывается функция onTimeout// Запускается пулинг, при появлении данных для чтения, вызывается функция onReadyRead void onTimeout(){ // Здесь мы знаем, что время вышло, а данные не пришли} void onReadyRead(){ // Доступны не все данные, выходим и ждем еще // (или вычитываем все доступные во внутренний буфер) if( bytesAvailable() < 10 ) return; // Все данные доступны - останавливаем таймер timer->stop(); // Вычитываем и/или обрабатываем данные}