Суть задачи - на одноплатнике через GPIO нужно читать состояние ног на чипе mcp23017. СИ фактически не знаю, разбираюсь в нем на примитивном уровне. С горем пополам код я все-же написал, и он на удивление даже работал, но потом я столкнулся с ситуацией когда чип mcp23017 виснет, и при попытке считать его состояние подвисает и программа. Собственно, требуется как-то обрывать выполнение приложения, допустим если оно не отработало за 5 секунд.Так сказать "основной участок кода" (все, что не касается сабжа убрал):
#include <wiringPi.h>
#include <mcp23017.h>
int main (int argc, char * argv[]) {
wiringPiSetup ();
mcp23017Setup (101, 0x27);
printf("%d\n", digitalRead(101));
return 0 ;
}
Проблемный участок здесь "printf("%d\n", digitalRead(101));", а точнее digitalRead. Если чип завис, данная команда будет выполняться фактически бесконечно.
Хотелось-бы чтобы код подождал 5 секунд, и прекратил выполнение данной команды.
Понятное дело сначала полез гуглить - нашел кучу советов использовать pthreads. Когда попытался в нем разобраться, почувствовал что мозг сейчас уже через уши полезет, ибо инструкции по нем выглядят как-то так - "берем отвертку, гаечный ключ, 5 гаек на 12 и 4 шурупа, вкручиваем шуруп в гайку, ииии вот у нас получилась машина времени. Я PHP знаю и JS, но вот СИ для меня оказался за гранью добра и зла. Дайте совет как минимальным несложным кодом решить мою задачу.