Provided by: manpages-de-dev_4.18.1-1_all bug

BEZEICHNUNG

       times - Abfrage der Prozesszeiten

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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.

STANDARDS

       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-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)

Ü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⟩.