Portál AbcLinuxu, 10. května 2025 07:27
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.