( vl | 2022. 11. 15., k – 23:19 )

Nem értem. Kiolvasod a két gettimeofday() hívással az időpontokat.

Levonod a későbbi tv_sec-jéből a korábbiét. Összehasonlítod a tv_usec komponenseket, ha a későbbi >= , akkor levonod belőle a korábbit, és készen is vagy, ha nem, akkor hozzáadsz 1 milliót, és úgy vonod le, a tv_sec-et pedig pedig csökkented eggyel.

t2->tv_sec -= t1->tv_sec;
​​​​​​​if (t2->tv_usec < t1->tv_usec) { t2->tv_usec += 1000000; t2->tv_sec--; }
t2->tv_usec -= t1->tv_usec;

Az eredmény egy struct timeval lesz, és nem kell floating pontokkal baszakodni.