Provided by: manpages-de-dev_2.14-1_all bug

BEZEICHNUNG

       times - Abfrage der Prozesszeiten

ÜBERSICHT

       #include <sys/times.h>

       clock_t times(struct tms *buf);

BESCHREIBUNG

       times()  speichert die aktuellen Prozesszeiten in der Struktur tms, auf die buf 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 buf 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 buf.

       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  4.16  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 <debian-l10n-german@lists.debian.org>.