Portál AbcLinuxu, 8. prosince 2025 00:28
clock_gettime v některých případech vrátit ve struct timespec počet nanosekund (tv_nsec) větší než 1 miliardu (tj. v přepočtu více než 1 sekundu) a musím to tak kontrolovat a popř. dělit a přičítat do sekund, nebo se mohu spolehnout (zaručeno nějakým POSIX standardem), že tam nikdy nebude hodnota rovná či větší než hodnota odpovídající jedné sekundě?
struct timespec je mimo jiné také součastí standardu C11, kde je uvedeno, že tv_sec je vždy větší nebo rovno nule a tv_nsec v rozsahu nula až 999999999, tj. méně než sekunda. C11 tedy neumožňuje, aby byl aktuální čas nastaven před epochu daných hodin.
unsigned int to bude vždy nekonečný cyklus, protože dle standardu (ISO C i ISO C++) nemůže přetéct, pro signed int to pak bude podle záviset na nastavení kompilátoru s tím, že podle standardu je přetečení nedefinované chování.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.