Új hozzászólás Aktív témák

  • Jester01

    veterán

    válasz emitter #1309 üzenetére

    A TEMP_FAILURE_RETRY gondolom csak egy kis makró volt, ami addig próbálja a selectet amíg 0-t vagy 1-et ad vissza (vagyis nem hibát). Neked ez eleve nem jó, mert majd újra kell számolni a timeout-ot. Szóval simán hagyd el.

    Úgy kell használni, hogy nyilvántartod mennyi idõ múlva esedékes a következõ frissítés, ez lesz a timeout értéke az input_timeout hívásban (kicsit át kell alakítani, hogy ne csak másodperceket tudjon). A filedes az az STDIN_FILENO, ahogy a példában is van. Megvizsgálod az input_timeout visszatérési értékét: ha 0 akkor timeout miatt tért vissza, vagyis az idõt kell kiírni. Ha 1 akkor a felhasználó nyomott egy billenytût amit nyugodtan beolvashatsz a getch()-val, már nem fog blokkolni.
    Ezután lekéred az idõt, újraszámolod a timeout értékét és ismét mehet a select. Ne a time() függvényt használd, mert nagyobb pontosságra van szükség, hanem a gettimeofday-t.

Új hozzászólás Aktív témák