GETTIMEOFDAY(2)

NOMBRE
gettimeofday, settimeofday - pone u obtiene la hora

SINOPSIS
#include <sys/time.h>
#include <unistd.h>

int gettimeofday(struct timeval *tv, struct timezone *tz);
int settimeofday(const struct timeval *tv , const struct timezone *tz);

DESCRIPCIÓN
gettimeofday y settimeofday pueden poner tanto la hora como una zona horaria. tv es una estructura timeval , tal como se especifica en /usr/include/sys/time.h:

struct timeval {
long    tv_sec;         /* segundos */
long    tv_usec;        /* microsegundos */
};

y tz es una estructura timezone :

struct timezone {
int     tz_minuteswest;
/* minutos al O de Greenwich */
int     tz_dsttime;
/* tipo de corrección horaria de invierno/verano */
};

con la corrección horaria de invierno/verano definida como sigue:

DST_NONE /* no hay */
DST_USA /* estilo EE.UU. */
DST_AUST /* estilo australiano */
DST_WET /* como en Europa Occidental */
DST_MET /* como en Europa Central */
DST_EET /* como en Europa del Este */
DST_CAN /* Canadá */
DST_GB /* Gran Bretaña e Irlanda */
DST_RUM /* Rumanía */
DST_TUR /* Turquía */
DST_AUSTALT /* estilo australiano con cambio en 1986 */

Y para operar sobre esto se definen las siguientes macros:
#define timerisset(tvp)\
((tvp)->tv_sec || (tvp)->tv_usec)
#define timercmp(tvp, uvp, cmp)\
((tvp)->tv_sec cmp (uvp)->tv_sec ||\
(tvp)->tv_sec == (uvp)->tv_sec &&\
(tvp)->tv_usec cmp (uvp)->tv_usec)
#define timerclear(tvp)\
((tvp)->tv_sec = (tvp)->tv_usec = 0)

Si tv o tz es nulo, la estructura correspondiente no se ajusta ni se devuelve.

Solamente el super-usuario puede emplear settimeofday.

VALORES DEVUELTOS
getimeofday y settimeofday devuelven 0 en caso de éxito ó -1 si ocurre un fallo (en cuyo caso errno toma un valor apropiado).

ERRORES

EPERM
    Alguien que no es el super-usuario ha llamado a settimeofday

EINVAL
    La zona horaria (o algo más) es inválida.

EFAULT
    Uno de tv o tz apuntaba afuera de su espacio de direcciones accesible.

CONFORME CON
SVr4, BSD 4.3

VÉASE
date(1), adjtimex(2), time(2), ctime(3), ftime(3)