¿Quieres implementar el tiempo de espera para una función en C

Aquí tengo una función que es el modo de escucha. Esta función lista algo que tengo de algún dispositivo.

Aquí cuando mi función está en modo de escucha, esa vez quiero crear un tiempo de espera. Si no obtendré ninguna respuesta de un dispositivo en particular, entonces quiero salir de esta función y debo notificarlo.

Si durante este período de tiempo de espera, obtendré una respuesta del dispositivo, entonces debo continuar con el trabajo y detener este tiempo de espera, y no hay límites para completar este trabajo en ningún momento.

Entonces, ¿cómo puedo implementar esto para una función.

Cualquier organismo, por favor, ¿puede ayudarme a implementar esto con una funcionalidad de tiempo de espera?

Echa un vistazo a la man 2 alarm . Puede configurar o desactivar las señales que se enviarán a su aplicación después de que transcurra un cierto período de tiempo.

Dependiendo de cómo esté esperando una respuesta de este dispositivo, la respuesta a su pregunta será diferente. El marco básico es:

 int do_something_with_device() { if (!wait_for_response_from_device()) { return TIMEOUT_ERROR; } // continue with processing } 

En cuanto a cómo implementas wait_for_response_from_device() , bueno, cada dispositivo es diferente. Si está utilizando sockets o tuberías, use select() . Si está interactuando con algo que requiere un ciclo de espera de ocupado, podría parecer:

 int wait_for_response_from_device() { time_t start = time(NULL); while (time(NULL) - start < TIMEOUT) { if (check_device_ready()) { return 1; } } return 0; } 

Naturalmente, la implementación de check_device_ready() de usted.