Genaue Zeitmessung in C

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

  1. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.602
    Zustimmungen:
    350
    Mitglied seit:
    20.08.2005
    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

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

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.113
    Zustimmungen:
    20
    Mitglied seit:
    21.01.2005
    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

    Beiträge:
    47.834
    Zustimmungen:
    3.804
    Mitglied seit:
    23.11.2004
    tickcount ist dein freund...
     
  5. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.602
    Zustimmungen:
    350
    Mitglied seit:
    20.08.2005
    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

    Beiträge:
    47.834
    Zustimmungen:
    3.804
    Mitglied seit:
    23.11.2004
    du kannst immer noch eine API lesen, das machst du falsch ;)

    man gettimeofday
     
  7. cordney*

    cordney* MacUser Mitglied

    Beiträge:
    755
    Zustimmungen:
    24
    Mitglied seit:
    22.04.2003
    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

    Beiträge:
    8.602
    Zustimmungen:
    350
    Mitglied seit:
    20.08.2005
    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

    Beiträge:
    47.834
    Zustimmungen:
    3.804
    Mitglied seit:
    23.11.2004
    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

    Beiträge:
    8.602
    Zustimmungen:
    350
    Mitglied seit:
    20.08.2005
    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