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

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert 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.463
    Zustimmungen:
    126
    Registriert seit:
    21.08.2005
    gettimeofday() ist auf die Mikrosekunde genau.
     
  3. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.130
    Zustimmungen:
    20
    Registriert 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:
    46.803
    Zustimmungen:
    3.632
    Registriert seit:
    23.11.2004
    tickcount ist dein freund...
     
  5. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    Registriert 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:
    46.803
    Zustimmungen:
    3.632
    Registriert 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
    Registriert 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.564
    Zustimmungen:
    350
    Registriert 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:
    46.803
    Zustimmungen:
    3.632
    Registriert 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.564
    Zustimmungen:
    350
    Registriert 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