C: clock_t, CPU Zeit wird nicht angezeigt, vielleicht ein ARM/Raspi Problem?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Gutschy, 6. September 2016 .

Schlagworte:
  1. 6. September 2016
    Hallo Leute,

    ein wirklich einfaches Skript will sich nicht zur gewünschten Ausgabe zwingen lassen. Es geht dabei um die Funktion clock() Verbrauchte CPU Zeit für ein Programm. Aus praktischen Gründen mach ich meine Programmier Übungen auf einem Raspi auf dem ich mit SSH zugreife. Mein Lehrbuch schreibt, wenn die CPU Zeit nicht verfügbar ist soll die Funktion -1 zurückliefern. Kommt aber nicht. Hier mal das kleine Skript.
    Code:
     1 /* runtime.c */
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 #include <time.h>
     5
     6 int main(void) {
     7 clock_t prgstart, prgende;
     8 int c;
     9
     10 prgstart=clock();
     11 printf("Startzeit Test %2.f\n",(float)prgstart);
     12 printf("Geben Sie etwas ein, und beenden Sie mit #\n");
     13 printf("\n > ");
     14 while((c = getchar()) != '#')
     15 putchar(c);
     16 prgende = clock();
     17 printf("Endzeit Test %2.f\n",(float)prgende);
     18 printf("Die Programmlaufzeit betrug %.2f Sekunden\n ",
     19 ((float)(prgende - prgstart) / CLOCKS_PER_SEC));
     20 return EXIT_SUCCESS;
     21 }
    
    Die Zeilen 11 und 17 habe ich mal zu Testzwecken eingeführt, in der Hoffnung das hier eine -1 erscheint, kommen aber nur 4 stellige Zahlen. Die Programmlaufzeit beträgt in der Ausgabe des Skripts immer 0.0 Sekunden. Eine Vermutung von mir ist das die Funktion vielleicht nichts mit einer ARM CPU Anfangen kann.

    Grüße,

    gutschy
     
  2. 6. September 2016
    AW: C: clock_t, CPU Zeit wird nicht angezeigt, vielleicht ein ARM/Raspi Problem?

    Das Programm ist einfach zu schnell
    Versuch mal die Stellengenauigkeit bei der Float Ausgabe zu erhöhen. %6.f
    oder bau eine while schleife ein die bis hundertausend zählt.
     
  3. 7. September 2016
    AW: C: clock_t, CPU Zeit wird nicht angezeigt, vielleicht ein ARM/Raspi Problem?

    Hi raid-rush, habe gerade festgestellt das die Ausgabe der Zeitspanne völlig falsch formatiert war.:shock:
    In der Zeile 18 habe ich es jetzt aber dazu auf 6 Stellen eingestellt '%.6f' , siehe da, es wird was gemessen. Aber mein Lehrbuch meint es anders.
    Hier mal das gewünschte Ergebnis: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/bilder/19_002.gif
    Und hier der Link zur Seite: Rheinwerk Computing :: C von A bis Z &ndash; 19 Zeitroutinen

    Mein Lehrbuch sagt das mit der Zeile 10 ein Zeitpunkt gestoppt wird, dieser fällt auf den Programmstart, also wenn die Eingabeaufforderung kommt. Dann wird irgendwas getippt und die Sekunden verstreichen. Irgendwann wird dann die Raute geschrieben und Enter gedrückt. Jetzt wird ein neuer Zeitpunkt gestoppt und dieser mit der Programmstart Zeit verrechnet.

    Auf der anderen Seite, deine Meinung dass das Programm zu schnell ist scheint zu stimmen, nur W-H-Y ? ? ?;(
     
  4. 7. September 2016
    AW: C: clock_t, CPU Zeit wird nicht angezeigt, vielleicht ein ARM/Raspi Problem?

    Fehler könnte auch sein:

    ((float)(prgende - prgstart) / CLOCKS_PER_SEC))

    Vor der Division wird das Ergebnis in ein float gewandelt... probiere es mal geklammert
    ((float) ((prgende - prgstart) / CLOCKS_PER_SEC)) )
     
  5. 7. September 2016
    AW: C: clock_t, CPU Zeit wird nicht angezeigt, vielleicht ein ARM/Raspi Problem?

    Das mit den Klammern hatte ich schon getestet. Habe aber jetzt das Skript auf meiner Intel Kiste laufen lassen, zudem auch noch mit gcc kompeliert. Funzt. 20.000008 Sekunden.

    Das Lehrbuch sagt, falls die CPU Zeit nicht verfügbar ist sollte die Funktion -1 liefern, blöderweise liefert ja die Funktion was auf dem Raspi, nämlich 0.000664 Sekunden. Nun denn, ich werde es nicht mehr rauskriegen. Nochmal Danke für die Hilfe.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.