struct timeb { time_t time; unsigned short millitm; short timezone; short dstflag; };
Here time is the number of seconds since the Epoch, and millitm is the number of milliseconds since time seconds since the Epoch. The timezone field is the local timezone measured in minutes of time west of Greenwich (with a negative value indicating minutes east of Greenwich). The dstflag field is a flag that, if non-zero, indicates that Daylight Saving time applies locally during the appropriate part of the year.
POSIX.1-2001 says that the contents of the timezone and dstflag fields are unspecified; avoid relying on them.
This function is obsolete. Don't use it. If the time in seconds suffices, time(2) can be used; gettimeofday(2) gives microseconds; clock_gettime(2) gives nanoseconds but is not as widely available.
Under libc4 and libc5 the millitm field is meaningful. But early glibc2 is buggy and returns 0 there; glibc 2.1.1 is correct again.