Konvertieren timeval zu time_t

Wie kann ich umwandeln timeval zu time_t? Ich bin versucht zu konvertieren:
umtp->ut_tv zu einer time_t-so kann ich mit einem difftime(a,b).

struct {
   int32_t tv_sec;         /* Seconds */
   int32_t tv_usec;        /* Microseconds */
           } ut_tv;                    /* Time entry was made */
 struct timeval ut_tv;      /* Time entry was made */
Sind Sie sicher, dass die Mikrosekunden nicht völlig egal? Wenn Sie es tun, dann Sie müssen schreiben Sie Ihre eigenen struct timeval difftimeval(const struct timeval *t1, const struct timeval *t2); Funktion zurückgibt, die t2 - t1. Oder definieren Sie den return-Typ zu sein double wenn Sie es vorziehen, so ist es mehr fast-plug-kompatibel mit difftime().
Übrigens, der gezeigte code wird nicht kompiliert; Sie definieren eine variable ut_tv zweimal mit zwei verschiedenen Typen (als anonyme struct und als struct timeval).
Wo hast du diese definition von timeval? Die Art der tv_sec soll time_t und es wird keine Konvertierung durchgeführt werden, nur abschneiden.
das kommt von utmp.h ist Teil von Linux. @Jonathan, du hast Recht über zweimal erklärt, in utmp.h, ich nahm eine else-Anweisung, so ist es wirklich eins oder das andere. Ich war in der Lage, nur die Verwendung von (time_t) utmp->ut_tv.tv.sec

InformationsquelleAutor user994165 | 2012-02-12

Schreibe einen Kommentar