Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin AT cygwin DOT com From: "Alex Vinokur" Subject: struct timeval : accuracy of tv_usec Date: Mon, 28 Apr 2003 07:48:00 +0300 Lines: 125 Message-ID: X-Complaints-To: usenet AT main DOT gmane DOT org X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 =========================================== Windows 2000 CYGWIN_NT-5.0 1.3.22(0.78/3/2) GNU gcc version 3.2-3 20020927 (prerelease) =========================================== struct timeval Data Type The struct timeval structure represents an elapsed time. It is declared in sys/time.h and has the following members: long int tv_sec This represents the number of whole seconds of elapsed time. long int tv_usec This is the rest of the elapsed time (a fraction of a second), represented as the number of microseconds. It is always less than one million. Here is some program and results of its run. Is 'accuracy of tv_usec' is microseconds here ? We can see the almost 2000 prints have the same tv_usec value. ========= C code : BEGIN ========= /* File t.c */ #include #include #include int main() { #define TOTAL_TIMES 7500 int i; struct rusage tval; for (i = 0; i < TOTAL_TIMES; i++) { getrusage(RUSAGE_SELF, &tval); printf ("[%d] getrusage = %ld.%ld\n", i, tval.ru_utime.tv_sec, tval.ru_utime.tv_usec ); fflush(stdout); assert (tval.ru_utime.tv_sec >= 0); assert (tval.ru_utime.tv_usec >= 0); } return 0; } ========= C code : END =========== ========= Compiling & Running : BEGIN ========= % gcc t.c % a > out % cat out [0] getrusage = 0.10000 [1] getrusage = 0.10000 [snip] [1979] getrusage = 0.10000 [1980] getrusage = 0.10000 [1981] getrusage = 0.20000 [1982] getrusage = 0.20000 [4081] getrusage = 0.20000 [snip] [4082] getrusage = 0.20000 [4083] getrusage = 0.30000 [4084] getrusage = 0.30000 [4085] getrusage = 0.30000 [snip] [5719] getrusage = 0.30000 [5720] getrusage = 0.30000 [5721] getrusage = 0.40000 [5722] getrusage = 0.40000 [snip] [6512] getrusage = 0.40000 [6513] getrusage = 0.40000 [6514] getrusage = 0.50000 [6515] getrusage = 0.50000 [snip] [7309] getrusage = 0.50000 [7310] getrusage = 0.50000 [7311] getrusage = 0.60000 [7312] getrusage = 0.60000 [snip] [7498] getrusage = 0.60000 [7499] getrusage = 0.60000 ========= Compiling & Running : END =========== -- ========================================== Alex Vinokur mailto:alexvn AT connect DOT to http://www.simtel.net/pub/oth/19088.html http://sourceforge.net/users/alexvn ========================================== -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/