Provided by: manpages-de-dev_4.15.0-9_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 gesetzt, um den Fehler
       anzuzeigen.

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.13  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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.