Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Fehlerbehandlung mit syslog UNIX-Systemaufrufe Benutzer und Gruppen »

Zeitfunktionen

UNIX zählt die Zeit in Sekunden seit dem 1.1.1970. Diesen Wert liefert die Funktion time().

#include <time.h>
time_t time(time_t *t);

Als Parameter können Sie einfach 0 angeben. Der Rückgabewert ist zu einem normalen Integerwert kompatibel. Da die wenigsten Menschen mit der Zahl der Sekunden seit dem 1.1.1970 umgehen können, gibt es hilfreiche Umrechnungsfunktionen.

#include <time.h>
struct tm *localtime(const time_t *timer);

Die Struktur tm, deren Zeiger die Funktion localtime() liefert, enthält alle gewünschten Daten, wie das Tagesdatum oder den Wochentag. Alle Werte beginnen bei 0 außer dem Monat. Dieser beginnt mit 1. Auf diese Besonderheit ist vermutlich jeder Programmierer mindestens einmal in seinem Leben hereingefallen.Sie noch nicht? Warten Sie es ab!

struct tm {
   int tm_sec;      /* seconds after the minute - [0,61] */
   int tm_min;      /* minutes after the hour - [0,59] */
   int tm_hour;     /* hours - [0,23] */
   int tm_mday;     /* day of month - [1,31] */
   int tm_mon;      /* month of year - [0,11] */
   int tm_year;     /* years since 1900 */
   int tm_wday;     /* days since Sunday - [0,6] */
   int tm_yday;     /* days since January 1 - [0,365] */
   int tm_isdst;    /* daylight savings time flag */   
}

Um in Protokolldateien einen Zeitstempel zu hinterlassen, gibt es die recht praktische Funktion asctime(). Sie liefert anhand der Struktur tm eine Zeichenkette, leider im amerikanischen Format. Die Zeichenkette ist immer 26 Byte lang und endet mit einem Zeilenvorschubzeichen und einer abschließenden Null.

#include <time.h>
char * asctime(const struct tm *t);

Die Funktion gettimeofday() ist hilfreich, wenn Sie eine genauere Zeitauflösung als Sekunden brauchen. Sie liefert in seiner Struktur timeval auch Mikrosekunden. Wie exakt diese Messung tatsächlich ist, hängt allerdings von der Hardware ab.

#include <sys/time.h>
int gettimeofday(struct timeval *zeit, void *tzp);

Die Datenstruktur des ersten Parameters enthält die Sekunden und Mikrosekungen und ist folgendermaßen definiert:

struct timeval {
    unsigned long  tv_sec;   /* seconds since Jan. 1, 1970 */
    long           tv_usec;  /* and microseconds */
};

Der zweite Parameter war ursprünglich für die Zeitzone vorgesehen. Allerdings hat die Umsetzung der verschiedenen Sommerzeitregeln als nicht so einfach erwiesen, so dass Sie als zweiten Parameter am besten 0 angeben.

Mit der Funktion clock() werden die Ticks seit dem Start des Programms ermittelt. Um auf Sekunden zu kommen, muss der Wert durch die Konstante CLOCKS_PER_SEC geteilt werden. Diese Funktion eignet sich vor allem für Performancemessungen.

#include <time.h>
clock_t clock(void);



« Fehlerbehandlung mit syslog | UNIX-Systemaufrufe | Benutzer und Gruppen »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de