gettimer, settimer, restimer, stime ou time Sous-routine

Objectif

Extrait ou définit la valeur en cours du temporisateur système spécifié.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include <sys/time.h>
#include <sys/types.h>
int gettimer( TimerType,  Value)
timer_t TimerType;
struct timestruc_t * Value;
#include <sys/timers.h>
#include <sys/types.h>
int gettimer( TimerType,  Value)
timer_t TimerType;
struct itimerspec * Value;
int settimer(TimerType TimePointer)
int TimerType;
const struct timestruc_t *TimePointer;
int restimer(TimerType Resolution MaximumValue)
int TimerType;
struct timestruc_t *Resolution, *MaximumValue;
int stime( Tp)
long *Tp;
#include <sys/types.h>
time_t time(Tp)
time_t *Tp

Descriptif

La sous-routine settimer est utilisée pour définir la valeur actuelle du paramètre TimePointer pour le temporisateur à l'échelle du système, spécifié par le paramètre TimerType .

Lorsque la sous-routine gettimer est utilisée avec le prototype de fonction dans sys/timers.h, à l'exception des paramètres, la sous-routine gettimer est identique à la sous-routine getinterval . L'utilisation de la sous-routine getinterval est recommandée, sauf si la sous-routine gettimer est requise pour une application conforme aux normes. La description et la sémantique de la sous-routine gettimer sont susceptibles de changer d'une édition à l'autre, en attente de modifications dans le projet de norme sur lequel repose la description de la sous-routine gettimer en cours.

Lorsque la sous-routine gettimer est utilisée avec le prototype de fonction dans /sys/timers.h, la sous-routine gettimer renvoie une structure itimerspec au pointeur spécifié par le paramètre Valeur . Le membre it_value de la structure itimerspec représente la durée de l'intervalle en cours avant l'expiration du temporisateur (spécifié par le paramètre TimerType ) ou un intervalle de zéro si le temporisateur est désactivé. Les membres du pointeur spécifié par le paramètre Valeur sont soumis à la résolution du temporisateur.

Lorsque la sous-routine gettimer est utilisée avec le prototype de fonction dans sys/time.h, la sous-routine gettimer renvoie une structure timestruc au pointeur spécifié par le paramètre Valeur . Cette structure contient la valeur en cours du temporisateur à l'échelle du système spécifié par le paramètre Valeur .

La résolution de n'importe quel temporisateur peut être obtenue par la sous-routine restimer . Le paramètre Résolution représente la résolution du temporisateur spécifié. Le paramètre MaximumValue représente la valeur maximale possible du temporisateur. La valeur de ces paramètres correspond à la résolution acceptée par la sous-routine settimer .

Remarque: Si un utilisateur non privilégié tente de soumettre un temporisateur de granularité fine (c'est-à-dire une demande de temporisateur inférieure à 10 millisecondes), la demande de temporisateur est élevée à 10 millisecondes.

La sous-routine time renvoie le temps en secondes depuis l'époque (c'est-à-dire 00:00:00 GMT, 1er janvier 1970). Le paramètre Tp pointe vers une zone où la valeur de retour est également stockée. Si le paramètre Tp est un pointeur null, aucune valeur n'est stockée.

La sous-routine stime est mise en œuvre pour assurer la compatibilité avec les anciens systèmes AIX, AT&T System V et BSD. Il appelle la sous-routine settimer à l'aide du temporisateur TIMEOFDAY .

Paramètres

Article Descriptif
Valeur Pointe vers une structure de type itimerspec.
TimerType Indique le temporisateur à l'échelle du système:
HEURE DU JOUR
(POSIX ) Ce temporisateur représente l'horloge de l'heure du jour du système. Pour ce temporisateur, les valeurs renvoyées par la sous-routine gettimer et spécifiées par la sous-routine settimer représentent la durée depuis 00:00:00 GMT, le 1er janvier 1970.
TimePointer Pointe vers une structure de type struct timestruc_t.
Résolution Résolution d'un temporisateur spécifié.
MaximumValue Valeur maximale du temporisateur possible.
Tp Pointe vers une structure contenant le temps en secondes.

Valeurs renvoyées

Les sous-routines gettimer, settimer, restimeret stime renvoient la valeur 0 (zéro) si l'appel aboutit. Une valeur de retour de -1 indique qu'une erreur s'est produite, et errno est défini.

La sous-routine time renvoie la valeur de temps en secondes depuis Epoch. Sinon, la valeur ((time_t)-1) est renvoyée et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

Si une erreur se produit dans la sous-routine gettimer, settimer, restimerou stime , une valeur de retour de-1 est reçue et la variable globale errno est définie sur l'un des codes d'erreur suivants:

Article Descriptif
EINVAL Le paramètre TimerType ne spécifie pas de temporisateur connu à l'échelle du système, ou le paramètre TimePointer de la sous-routine settimer est en dehors de la plage pour le temporisateur spécifié à l'échelle du système.
EFAULT Une mémoire référencée par une adresse de paramètre n'était pas valide.
EIO Une erreur s'est produite lors de l'accès à l'unité de temporisation.
EPERM Le processus demandeur ne dispose pas des droits appropriés pour définir le temporisateur spécifié.

Si la sous-routine de temps échoue, la valeur de retour est -1 et la variable globale errno prend la valeur suivante :

Article Descriptif
EFAULT Une mémoire référencée par une adresse de paramètre n'était pas valide.