Genaue Zeitmessung in C

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von martinibook, 10.11.2006.

  1. martinibook

    martinibook Thread Starter MacUser Mitglied

    MacUser seit:
    20.08.2005
    Beiträge:
    8.564
    Zustimmungen:
    350
    Hallo,

    Ich möchte in einem C Programm eine Zeit messen, dazu brauche ich allerdings die Zeit genauer als auf eine Sekunde. Wie geht das?

    Martin
     
  2. Graumagier

    Graumagier MacUser Mitglied

    MacUser seit:
    21.08.2005
    Beiträge:
    1.458
    Zustimmungen:
    126
    gettimeofday() ist auf die Mikrosekunde genau.
     
  3. autoexec.bat

    autoexec.bat MacUser Mitglied

    MacUser seit:
    21.01.2005
    Beiträge:
    2.113
    Zustimmungen:
    20
    Was für eine Zeit möchtest du denn messen? Für eine schnöde Zeitmessung mache ich das meist indem ich gettimeofday(2) zwei mal aufrufe und dann die Differenz berechne. Das ist auf die Mikrosekunde genau.

    Vielleicht reicht das ja auch für dich. :)
     
  4. oneOeight

    oneOeight MacUser Mitglied

    MacUser seit:
    23.11.2004
    Beiträge:
    47.183
    Zustimmungen:
    3.687
    tickcount ist dein freund...
     
  5. martinibook

    martinibook Thread Starter MacUser Mitglied

    MacUser seit:
    20.08.2005
    Beiträge:
    8.564
    Zustimmungen:
    350
    Ich stelle mich vielleicht was blöd an, aber ich habe jetzt folgendes:

    Code:
    #include <stdio.h>
    #include <time.h>
    #include <iostream>
    
    int main ()
    	{	
    	printf("%f", gettimeofday(0));
    	}
    
    Ich bekomme dann folgende Meldungen:
    error: too few arguments to function 'int gettimeofday(timeval*, timezone*)
    'error: at this point in file

    Was mache ich da falsch?
     
  6. oneOeight

    oneOeight MacUser Mitglied

    MacUser seit:
    23.11.2004
    Beiträge:
    47.183
    Zustimmungen:
    3.687
    du kannst immer noch eine API lesen, das machst du falsch ;)

    man gettimeofday
     
  7. cordney*

    cordney* MacUser Mitglied

    MacUser seit:
    22.04.2003
    Beiträge:
    755
    Zustimmungen:
    24
    Wie die Meldung schon sagt, Du übergibst der Funktion zu wenig Argumente, schau Dir die Beschreibung der Funktion mal an.
     
  8. martinibook

    martinibook Thread Starter MacUser Mitglied

    MacUser seit:
    20.08.2005
    Beiträge:
    8.564
    Zustimmungen:
    350
    Verstehe ich das richtig, dass ich der Funktion eine Struktur übergeben muss (als Zeiger), in die die Funktion dann die Werte einsetzt?
     
    Zuletzt bearbeitet: 12.06.2009
  9. oneOeight

    oneOeight MacUser Mitglied

    MacUser seit:
    23.11.2004
    Beiträge:
    47.183
    Zustimmungen:
    3.687
    guck dir mal in der Xcode doku TickCount an, falls es das C prog für den mac ist...
    da musst du nichts als parameter nutzen...
     
  10. martinibook

    martinibook Thread Starter MacUser Mitglied

    MacUser seit:
    20.08.2005
    Beiträge:
    8.564
    Zustimmungen:
    350
    Also jetzt habe ich:

    Code:
    #include <stdio.h>
    #include <time.h>
    #include <iostream>
    #include <OSUtils.h>
    
    int main ()
    	{
    	unsigned int zeit;
    	
    	zeit = TickCount ();
    	
    	printf("%d", zeit);
    	}
    
    Allerdings sagt er mir, dass weder OSUtils.h gefunden werden kann, noch dass TickCount definiert ist. Was ist diesmal das Problem?
     

Diese Seite empfehlen