Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       times - Abfrage der Prozesszeiten

ÜBERSICHT

       #include <sys/times.h>

       clock_t times(struct tms *Puffer);

BESCHREIBUNG

       times() speichert die aktuellen Prozesszeiten in der Struktur tms, auf die Puffer weist. Die tms-Struktur
       wird in <sys/times.h> wie folgt definiert:

           struct tms {
              clock_t tms_utime;  /* Benutzer-Zeit */
              clock_t tms_stime;  /* System-Zeit */
              clock_t tms_cutime; /* Benutzer-Zeit der Kindprozesse */
              clock_t tms_cstime; /* System-Zeit der Kindprozesse */
           };

       Das  Feld tms_utime enthält die CPU-Zeit, die mit dem Ausführen von Anweisungen des aufrufenden Prozesses
       verbracht wurde. Das Feld tms_stime enthält die im Kernel verbrachte CPU-Zeit während der Ausführung  von
       Aufgaben im Namen des aufrufenden Prozesses.

       Das  Feld  tms_cutime  enthält  die Summe der tms_utime- und tms_cutime -Werte für alle Kindprozesse, auf
       deren Abschluss gewartet wurde. Das Feld tms_cstime enthält die Summe der tms_stime- und tms_cstime-Werte
       für alle Kindprozesse, auf deren Abschluss gewartet wurde.

       Zeiten für beendete Kindprozesse (und ihre Nachkommen) werden in dem  Moment  hinzugefügt,  wenn  wait(2)
       oder  waitpid(2)  deren Prozesskennung zurückgeben. Insbesondere werden die Zeiten der Enkel, auf die die
       Kinder nicht gewarten haben, nicht erfasst.

       Alle Zeiten werden in Uhrticks angegeben.

RÜCKGABEWERT

       times() gibt die Zahl der Ticks an, die seit einem beliebigen Punkt in der Vergangenheit abgelaufen sind.
       Der Rückgabewert kann den möglichen Bereich von Typ  clock_t  überlaufen.  Tritt  ein  Fehler  auf,  wird
       (clock_t) -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

       EFAULT tms zeigt außerhalb des adressierbaren Adressraums des Prozesses.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

ANMERKUNGEN

       Die Zahl der Uhrticks pro Sekunde kann wie folgt bestimmt werden:

           sysconf(_SC_CLK_TCK);

       In  POSIX.1-1996  wird  das  Symbol  CLK_TCK  (definiert  in <time.h>) als veraltet erwähnt. Es ist jetzt
       überholt.

       Falls in Linux-Kernel-Versionen vor 2.6.9 SIGCHLD SIG_IGN zugeordnet ist, werden die Zeiten der beendeten
       Kindprozesse automatisch in den Feldern tms_cstime und tms_cutime eingetragen, obwohl POSIX.1-2001  sagt,
       dass  dies  nur  geschehen soll, wenn der aufrufende Prozess (mit wait(2)) auf seine Kindprozesse wartet.
       Diese Nichtübereinstimmung wurde in Linux 2.6.9 und später behoben.

       Unter Linux kann das Argument Puffer als NULL angegeben werden, worauf times() nur ein  Funktionsergebnis
       zurückgibt. Dieses Verhalten wird aber nicht von POSIX beschrieben und die meisten UNIX-Implementierungen
       erfordern einen von NULL verschiedenen Wert für Puffer.

       Beachten  Sie,  dass  auch clock(3) einen Wert vom Typ clock_t zurückgibt. Die Maßeinheit für diesen Wert
       ist CLOCKS_PER_SEC, nicht die von times() verwendeten Uhrticks.

       Unter Linux hat sich der »beliebige Punkt in der  Vergangenheit«,  auf  den  sich  der  Rückgabewert  von
       times()  bezieht,  über  die  Kernel-Versionen  geändert. Unter Linux 2.4 und früher war dieser Punkt der
       Moment, an dem das System gestartet wurde. Seit Linux 2.6 ist dieser Punkt (2^32/HZ) - 300  Sekunden  vor
       Systemstart.  Diese  Variabilität  zwischen  Kernel-Versionen  (und  über UNIX-Implementierungen) und die
       Tatsache, dass der Rückgabewert den Bereich clock_t überlaufen lassen kann, bedeutet, dass eine  portable
       Anwendung klug daran tut, diesen Wert nicht zu verwenden. Um Änderungen der verstrichenen Zeit zu messen,
       verwenden Sie stattdessen clock_gettime(2).

   Geschichtliches
       SVr1-3  gibt long zurück und Bestandteile der Struktur sind vom Typ time_t, obwohl sie Uhrticks speichern
       und nicht Sekunden seit dem Beginn der Unix-Zeit. V7 verwendete long für die Bestandteile  der  Struktur,
       weil es damals noch keinen Typ time_t gab.

FEHLER

       Eine  Beschränkung  in  den  Linux-Konventionen  für Systemaufrufe für einige Architekturen (insbesondere
       i386) bewirkt unter Linux 2.6 ein kleines Zeitfenster (41 Sekunden) kurz nach  dem  Systemstart,  in  dem
       times()  -1  zurückgeben  und  damit  fälschlicherweise  anzeigen kann, dass ein Fehler auftrat. Dasselbe
       Problem kann auftreten, wenn der Rückgabewert den größten in clock_t speicherbaren Wert überschreitet.

SIEHE AUCH

       time(1), getrusage(2), wait(2), clock(3), sysconf(3), time(7)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  5.10  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de>, Martin Eberhard
       Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte  eine  E-Mail  an  die
       Mailingliste der Übersetzer.

Linux                                          15. September 2017                                       TIMES(2)