Red de conocimiento informático - Material del sitio web - En Linux, si quiero utilizar la función de suspensión para retrasarla durante cinco segundos, ¿cómo debo configurar los parámetros?

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 cuando lo use);

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);