El sistema Linux que utiliza la función setitimer puede ser una función de sincronización de alta precisión, que se utiliza para ejecutar funciones con regularidad. Las siguientes series pequeñas le darán una introducción detallada al uso de la función setitimer. Veamos esto.
Descripción: setitimer un proceso sólo puede tener un tiempo antes de la próxima será cubierto por una más temporizadores sólo puede pensar en un proceso para lograr su propia cuenta.
setitimer () no admite varios usos simultáneos en el mismo proceso para admitir varios temporizadores.
El temporizador relacionado con Linux (setitimer) se describe a continuación:
El sistema Linux proporciona tres temporizadores para cada proceso, cada uno de los cuales cuenta en su propio dominio diferente. Cuando cualquier temporizador cuenta, el sistema envía una señal al proceso y el contador se reinicia.
Se admite un total de los siguientes tres formularios de contador:
ITIMER_REAL El contador se reduce en 1 en tiempo real, y luego se envía la señal SIGALRM después de comparar el recuento.
ITIMER_VIRTUAL Cuando el proceso cuenta durante la ejecución, la señal SIGVTALRM se envía al proceso cuando se completa la cuenta.
ITIMER_PROF cuenta cuando el proceso se ejecuta y el sistema se ejecuta en nombre del proceso
[llamada del sistema getitimer /setitimer]
Descripción:
Obtener o establecer el valor del temporizador de intervalo. El sistema proporciona tres tipos de temporizadores para el proceso, cada clase disminuye su valor en un dominio de tiempo diferente. Cuando el temporizador expira, la señal se envía al proceso, después de lo cual el temporizador se reinicia.
Uso:
#include "sys /time.h"
int getitimer (int which, struct itimerval * value);
int setitimer ( Int que, const struct itimerval * value, struct itimerval * ovalue);
Parámetros:
que: Tipo de temporizador intermitente, hay tres opciones
ITIMER_REAL //El valor es 0, el valor del temporizador disminuye en tiempo real y la señal enviada es SIGALRM.
ITIMER_VIRTUAL //El valor es 1, el valor del temporizador disminuye cuando se ejecuta el proceso y la señal enviada es SIGVTALRM.
ITIMER_PROF //El valor es 2, el valor del temporizador disminuye durante el proceso y la ejecución del sistema, y la señal enviada es SIGPROF.
valor, ovalue: parámetro de tiempo, el prototipo es el siguiente
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
};
struct timeval
{
long tv_sec;
long tv_usec;
}; < Br>
getitimer () rellena la estructura señalada por valor con el valor actual del temporizador.
setitimer () establece la estructura apuntada por valor al valor actual del temporizador. Si ovalue no es NULL, devolverá el valor original del temporizador.
Descripción de devolución:
Devuelve 0 cuando se ejecuta correctamente. Error al devolver -1, errno se establece en uno de los siguientes valores
EFAULT: value o ovalue es un puntero que no es válido
EINVAL: su valor no es uno de ITIMER_REAL, ITIMER_VIRTUAL o ITIMER_PROF
#include "stdio.h"
#include "unistd.h"
#include "signal.h"
#include "string.h"
#include "sys /time.h"
#include "errno.h"
void PrintMsg (int Num)
{
printf ("% s /n ", " Hello World ");
return;
}
int main (int argc, char * argv [])
{
señal (SIGALRM, PrintMsg);
struct itimerval tick;
tick.it_value.tv_sec = 10; //10 El temporizador se iniciará después de un segundo
tick.it_value.tv_usec = 0;
tick.it_interval.tv_sec = 1; //Después de que se inicie el temporizador, cada 1 segundo ejecutará el correspondiente Función
tick.it_interval.tv_usec = 0;
//setitimer activará la señal SIGALRM
int ret = setitimer (ITIMER_REAL, &tick, NULL);
if (ret! = 0)
{
printf (" Error del temporizador de configuración.% s /n ", strerror (errno));
return -1;
}
printf (" ¡Espere! /N ");
getchar ();
return 0;
}
Lo anterior es el uso de la función setitimer en Linux. La función setitimer tiene tres tipos de selecciones de temporizador. Para lograr una sincronización de mayor precisión, es mejor elegir la función setitimer.
La hora del sistema Linux a veces es inexacta. La hora imprecisa causará errores en
Cuando se realiza la operación del sistema Linux, ya que el rendimiento del program
de CentOS instalación del software Tmux Tmux es un software de aplicación de terminal que puede abr
En sistemas Linux, Docker es una plataforma de desarrollo de aplicaciones que empaqueta aplicaciones
¿Qué debo hacer si hay un código confuso en la página del navegador Firefox en Linux?
¿Cómo enlazar el proceso de la CPU en Ubuntu?
¿Qué debo hacer cuando el disco duro de Ubuntu lee y escribe?
¿Cómo ejecutar directamente los archivos de script PHP en Unix /Linux?
Cómo modificar la zona horaria del sistema CentOS6?
Cómo Linux establece IPMI a través de la línea de comandos
Cómo usar los comandos de Linux para ver el uso de la CPU
¿Qué es la arquitectura del sistema Linux?
Cómo limpiar el código no válido de Git y Repo en el sistema Linux
¿Cómo ganar memoria virtual en computadora win7?
¿Qué debo hacer si el área de notificación de Win10 no puede encontrar el icono de volumen?
Configuración clásica del menú de inicio de Classic Shell win8.1
Haga que Windows 7 sea más seguro en la configuración de la cuenta
Win7 prohíbe la solicitud de arranque. "Windows detecta un problema con el disco duro". Método
Habilidades para enviar parámetros de Firefox habilidades de aplicación práctica seis
Cómo configurar Win8.1 para despertarse de la contraseña de entrada de suspensión
¿Cómo configurar el icono de red de la computadora de escritorio Win10 10130?
Optimizar eficazmente la esencia de BIOS del sistema de placa base del ordenador