msleep libreria c usleep

libreria - usleep c++ windows



declaración implícita de la función de dormido (3)

Esa lista son las condiciones previas para usleep definidos. Es básicamente una expresión tipo C que involucra variables #define que debe ser cierta antes de incluir el archivo de encabezado.

El propio archivo de encabezado solo definirá el tiempo de usleep dentro de lo que generalmente es un nido masivo de declaraciones #ifdef y los desarrolladores se han tomado el tiempo para decirle qué debe hacer para que no tenga que pasar horas tratando de averiguarlo usted mismo :-)

Suponiendo que está utilizando un glibc 2.12 o mejor, significa que tiene que:

  • declarar _BSD_SOURCE; o
  • Declaro una combinación complicada de otras tres cosas, que no me molestaré en decodificar.

Probablemente la solución más fácil es simplemente compilar con gcc -D _BSD_SOURCE o poner:

#define _BSD_SOURCE

en el código antes de incluir el archivo de encabezado que le da el tiempo de usleep .

Probablemente querrá definirlos antes de cualquier inclusión en caso de que haya dependencias entre los distintos archivos de encabezado.

gcc (GCC) 4.6.3 c89

Estoy tratando de usar el usleep . Sin embargo, sigo recibiendo la siguiente advertencia:

declaración implícita de la función de dormido

He incluido el archivo de cabecera unistd.h

Las páginas del manual mencionan algo sobre esto. Pero no estoy seguro de entender por ello:

usleep(): Since glibc 2.12: _BSD_SOURCE || (_XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700) Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

¿Pero no estoy seguro de qué hacer con lo anterior?


Esto puede funcionar: Agregue -std=gnu99 cuando -std=gnu99 con gcc en Linux.

Ejemplo:

arm-linux-gcc -lpthread -std=gnu99 -o test ArmLinuxDataPipe1.2.1.c


Usar nanosleep () en su lugar funcionó para mí.

En una nota relevante: usleep () se ha eliminado desde POSIX-2008 y recomienda usar nanosleep () en su lugar.