006
02.03.2004, 17:14 Uhr
0xdeadbeef
Gott (Operator)
|
Was die Ticks angeht, je nachdem, was du damit machen willst, wird für dich wohl eine der Funktionen time oder gettimeofday interessant sein. time gibt die Anzahl der Sekunden seit dem 1. Januar 1970, 0:00 UTC ("The Epoch") zurück, gettimeofday löst auch Millisekunden auf und gibt dir eine Info über die Zeitzone, in der deine Uhr tickt, ist aber dementsprechend komplizierter zu benutzen.
C++: |
time_t t;
t = time(0); if(t == ((time_t) -1)) printf("Fehler! errno == %d\n", errno); else printf("Sekunden seit 1.1. 1970 0:00 UTC: %ld\n", t); /* oder, alternativ: */ if(time(&t) == ((time_t) -1) printf("Fehler! errno == %d\n", errno); else printf("Sekunden seit 1.1. 1970 0:00 UTC: %ld\n", t);
/*****************************************/ struct timeval tv; struct timezone tz; if(gettimeofday(&tv, &tz) == -1) printf("Fehler! errno == %d\n", errno); else printf("Zeit seit 1.1.1970 0:00 UTC: %ld Sekunden, %ld Millisekunden\n", tv->tv_sec, tv->tv_usec);
|
Das timezone-struct ist im wesentlichen aus Kompatibilitätsgründen zu BSD 4.3 da und obsolet, ich würde dir raten, es nicht zu benutzen.
Was die Realtime-Priorität angeht, das nennt sich unter Unix "nice level". Ein geringerer nice-level bedeutet eine höhere Priorität. Auslesen und verändern kannst du den nice-level mit den Funktionen getpriority, setpriority und nice. Die Prototypen der Funktionen sind:
C++: |
int getpriority(int which, int who); int setpriority(int which, int who, int prio);
int nice(int inc);
|
Bei set/getpriority ist which einer der Werte PRIO_PROCESS, PRIO_PGRP, oder PRIO_USER, je nachdem, wessen Priorität du ändern willst. who ist der entsprechende identifier, und prio im Fall von setpriority der nice-level (ein Wert zwischen -20 und 19). getpriority gibt den nice-level zurück und -1, wenn ein Fehler auftritt. VORSICHT! Bei getpriority ist -1 auch ein legaler Rückgabewert, also vorher errno auf 0 setzen und nachher überprüfen, ob sich der Wert geändert hat. setpriority gibt 0 bei Erfolg und -1 bei einem Fehler zurück, errno wird entsprechend gesetzt.
nice funktioniert im Grunde wie setpriority, nur dass der Prozess seine eigene Priorität ändert und die Zahl entgegennimmt, um die der nice-level erhöht werden soll. Negative Werte sind nur für den Superuser erlaubt. Die Rückgabewerte entsprechen denen von setpriority. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 02.03.2004 um 17:30 Uhr von 0xdeadbeef editiert. |