GetTimeOfday y SetTimeoFday en C

GetTimeOfday y SetTimeoFday en C
"Muchos de nosotros sabremos sobre las dos funciones relacionadas con el tiempo en el sistema operativo Linux. Son la función getTimeOfday () y la función setTimeOfday (). Ambas funciones nos ayudan a determinar el tiempo real en la plataforma de Linux. En la conversación de hoy, exploraremos las características y los mecanismos funcionales de estas funciones.

Al principio, entenderemos la función getTimeOfday ()."

GetTimeOfday ()

La función getTimeOfday () es una función estándar cuya definición está escrita en un archivo de encabezado en la biblioteca C llamada SYS/TIME.H.

Sintaxis
La sintaxis de la función getTimeOfday () se describe a continuación

Int getTimeOfday (struct timeval * tm_vl, struct timeZone * tm_zn)

La función GetTimeOfday () toma dos parámetros como argumentos dentro de su paréntesis. Uno de ellos es el tm_vl variable que contiene TimeVal DataType, y otra es la tm_zn variable que contiene el tipo de datos de la zona horaria.

Hay dos miembros de datos estándar que existen en la estructura del horario. El primero es TV_SEC, Y otro es TV_USEC. TV_SEC representa la cantidad de tiempo en segundos y la televisión_usec representa la cantidad de tiempo en un microsegundo.

En la actualidad, la estructura de la zona horaria no se usa, ya que disminuye en su valor durante un período de tiempo. Para esto, pasamos NULO Como valor de la estructura de la zona horaria.

Programación Ejemplo 1
Este es un programa para tomar el tiempo para que se ejecute una función particular.

#incluir
#incluir
#incluir
#incluir
Float tm_com (struct timeval *str, struct timeval *lst)

return (lst-> tv_sec-str-> tv_sec) + 1e-6*(lst-> tv_usec-str-> tv_usec);

iteración nula (recuento size_t)

para (int j = 0; j %d) tiempo tomado: %0.8f sec \ n ",
count1, tm_com (& str, & lst));
GetTimeOfday (& Str, NULL);
iteración (count2);
GetTimeOfday (& LST, NULL);
printf ("Función iteradora (recuento de bucle -> %d) Tiempo de tiempo: %0.8f sec \ n ",
count2, tm_com (& str, & lst));
salir (exit_success);

Producción

Explicación
Dentro de la función main (), crearemos dos variables llamadas "stri" y "LST" de una estructura nombrada "Tiempo horario." También crearemos dos variables nombradas "Count1" y "Count2".

Dentro de la función gettimeofday (), pasaremos "Str" y NULO. Entonces llamaremos a una función nombrada "iteración," qué definición se escribe sobre la función principal (). Dentro de la función iteración (), pasaremos el "Count1". Dentro de la función gettimeofday (), pasaremos "LST" y NULO.

Después de eso, de "LST" y "Str" Obtendremos el tiempo de ejecución para la función "iteración" por valor "Count1" Como primera salida.

El proceso anterior se realiza nuevamente para otro valor mayor que se pasa a través de la variable "Count2".

Por eso hemos observado que el tiempo de ejecución para "Count2" Es mas que "Count1".

Programación Ejemplo 2
Este programa muestra el valor de retorno de GetTimeOfday sobre el éxito o el fracaso.

#incluir
#incluir
#incluir
int main (int argc, char *argv [])

Corriente del horario de tiempo de estructura;
int ld;
ld = getTeofday (& actual, nulo);
if (ld == 0)
printf ("Esta declaración se está ejecutando . Esto significa que GetTimeOfday es exitoso. \norte");
printf ("Segundo: %lu \ n microsegundo: %06lu \ n",
actual.TV_SEC, actual.TV_USEC);

demás
printf ("Esta declaración se está ejecutando . Esto significa que GetTimeOfday no tiene éxito!! errno = %d \ n ",
errno);
regreso -1;

regresar 0;

Producción

Explicación
Aquí creamos una variable llamada "Current" bajo la estructura de tiempo temporal y una variable de tipo entero nombrado "Identificación." Ahora llamaremos a la función getTimeOfday (), y pasaremos dos parámetros como argumentos. Los dos argumentos son "actual" y NULO. Cualquiera que sea el valor devolverá esta función; se asignará a la variable de identificación.

Si el "Identificación"El valor es cero, la función getTimeOfday () se ejecuta correctamente e imprime el tiempo en segundo y microsegundo; de lo contrario no ejecutar con éxito.

setTimeOfday ()

La función setTimeOfday () es una función estándar cuya definición se menciona en un archivo de encabezado en la biblioteca C llamada sys/time.H. Esta función nos ayuda a hacer el tiempo de reloj al estándar de tiempo universal.

Sintaxis

La sintaxis de la función setTimeOfday () se describe a continuación.

int sattimeofday (struct timeval * tm_vl, struct timeZone * tm_zn)

La función setTimeOfday () toma dos parámetros como argumentos dentro de su paréntesis. Uno de ellos es tm_vl; Es un puntero de la estructura del horario horario que representa el tiempo en segundos y microsegundos. Otro es tm_zn. En la actualidad, la estructura de la zona horaria no se usa, ya que se transmite en su valor durante un período de tiempo. Para esto, pasamos NULO Como valor de la estructura de la zona horaria.

Devoluciones
En la ejecución exitosa de la función setTimeOfday (), devuelve 0.

En la ejecución fallida de la función setTimeOfday (), devuelve -1.

Programación Ejemplo 3
Esta función mostrará el valor de retorno en la ejecución exitosa de esta función.

#incluir
#incluir
#incluir
int main ()

struct timeval tm_vl;
int sreturn;
tm_vl.TV_SEC = 1885151555;
tm_vl.TV_USEC = 0;
sreturn = setTimeOfday (& tm_vl, nulo);
if (sreturn == 0)

printf ("SetTimeoFday se ejecuta sin ningún error \ n");

demás
printf ("SetTimeofday no tiene éxito"
"errno = %d \ n", errno);
regreso -1;

regresar 0;

Producción
Ejecutar sin sudo y así fallado setTimeofday ().

Ejecutar con sudo y así setTimeofday () es exitoso.

Explicación
Aquí creamos dos variables nombradas "TV_SEC" y "TV_USEC." Ambas variables son miembros de la "Timeval" estructura y asignar algún valor. Luego llamaremos a la función setTimeOfday (), y dentro de la función, pasaremos el "Tm_val" variable. Independientemente del valor, esta función se asignará a la "Sreturn" variable. Si el "Sreturn" Variable Devuelve 0, entonces esta función se ha ejecutado con éxito y da su salida; de lo contrario no se ejecuta con éxito e imprime el valor de "Errno" a un valor particular (para este programa, es 1).

Aquí al principio, hemos ejecutado el programa sin sudo, y es por eso que setTimeOfday () no pudo ejecutarse con éxito y devuelto -1.

Por segunda vez, hemos ejecutado el programa con sudo, y setTimeOfday () tiene éxito y devuelve 0.

Conclusión

En la discusión anterior, hemos recibido mucha información sobre la función getTimeOfday () y la función de setTimeOfday (). Estas dos funciones son las funciones más importantes en términos de la plataforma Linux en el lenguaje C en el contenido del tiempo. Para obtener tiempo como entrada y establecer tiempo en el sistema, estas dos funciones nos ayudan mucho a configurar el sistema.