En Linux, si quiero utilizar la función de suspensión para retrasarla durante cinco segundos, ¿cómo debo configurar los parámetros?
Permisos de uso: todos los usuarios
Uso: dormir [--help] [--version] número[smhd]
Descripción: dormir se puede usar para retrasar la acción actual durante un período de tiempo
Descripción del parámetro:
--help: Mostrar información auxiliar
--version: Mostrar número de versión
número: período de tiempo, que puede ir seguido de s, m, h o d
Donde s es el segundo, m es el minuto, h es la hora y d es el número de días
Ejemplo:
Retrasar 1 minuto después de mostrar la hora actual y luego mostrar la hora nuevamente:
fecha;dormir 1m;fecha
Este comando se usa más en la programación de scripts de shell y en el programa
Como el siguiente programa:
Programa de aplicación:
Copiar el código
El código es el siguiente:
#include
usleep(n) //n microsegundos
Dormir (n) //n milisegundos
sleep(n) //n segundos
Controlador:
#include
mdelay(n) //implementación de milisegundos
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=( n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p( n) && (n)<=MAX_UDELAY_MS) ? udelay((n) *1000): \
({unsigned long msec=(n); while (msec--) udelay(1000);} ))
#endif
Llame a udelay de asm/delay.h, udelay debe ser un retraso de nanosegundos
Dos:
dormir (1); //Permanece durante 1 segundo
delay(100); //Permanece durante 100 milisegundos
Windows:
Dormir (100); /Permanecer durante 100 milisegundos
Linux:
Sleep(100); p>
sleep(1); //Permanecer 1 segundo
usleep (1000); //Quédate durante 1 milisegundo
Cada plataforma es diferente, es mejor definirla tú mismo. ¿Un conjunto de macros multiplataforma para controlar segundos o microsegundos? Acerca de la función de retraso dormir()
Como quiero escribir un fragmento de código, necesito usar la función dormir() En mi impresión, dormir(10) parece dormir durante 10 microsegundos, pero. el resultado es que duerme durante 10 microsegundos (en Linux). Me parece muy extraño, porque el jefe también recuerda que parece medirse en microsegundos. Así que lo comprobé.
El prototipo de función de suspensión original en Linux es:
unsigned int sleep(unsigned int segundos
Y el prototipo de función de suspensión en MFC es:
p>
unsigned int sleep(unsigned int segundos);
p>
void Sleep(DWORD dwMillisegundos
En otras palabras, en Linux (se utiliza la biblioteca gcc); ), la función dormir() está en segundos, dormir(1) es Dormir durante 1 segundo. La función dormir () en MFC se mide en microsegundos y dormir (1000) duerme durante 1 segundo. Así que eso es todo. Y si también duerme en microsegundos en Linux, puede usar la función de suspensión de subprocesos: void usleep (unsigned long usec, por supuesto, no olvide #include
También vale la pena mencionar que existe una función de retraso () en Linux, el prototipo es un retraso vacío externo (unsigned int msec, puede retrasar mseg * 4 milisegundos, es decir, si lo desea); retraso Durante un segundo, puedes usar retraso(250);