这里我有一个function,它是监听模式。 这个函数列出了我从某些设备获得的东西。
这时当我的函数处于侦听模式时,我想创建超时。 如果我不会从特定设备得到任何响应,我想退出此function并且必须通知。
如果在此超时期间,如果我将从设备获得响应,而不是我必须继续工作并停止此超时,并且在任何持续时间内完成此工作没有限制。
那么我该如何为一个函数实现这个function呢。
请问我可以帮助我实现具有超时function的这个东西。
看看man 2 alarm
。 您可以设置或禁用在一段时间过后将发送到您的应用程序的信号。
根据您等待此设备的响应的方式,您的问题的答案将有所不同。 基本框架是:
int do_something_with_device() { if (!wait_for_response_from_device()) { return TIMEOUT_ERROR; } // continue with processing }
至于如何实现wait_for_response_from_device()
,每个设备都是不同的。 如果您正在使用套接字或管道,请使用select()
。 如果您正在与需要忙等待循环的东西连接,它可能看起来像:
int wait_for_response_from_device() { time_t start = time(NULL); while (time(NULL) - start < TIMEOUT) { if (check_device_ready()) { return 1; } } return 0; }
当然, check_device_ready()
的实现将取决于您。
以上就是c/c++开发分享想要在C中为一个函数实现超时相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/545659.html