作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这里我有一个功能是监听模式。此函数列出了我从某些设备获得的内容。
在这里,当我的函数处于监听模式时,我想创建超时。如果我不会从特定设备获得任何响应而不是我想退出此功能并必须通知。
如果在此超时期限内我将收到设备的响应,那么我必须继续工作并停止此超时,并且在任何持续时间内完成此工作都没有限制。
那么我怎样才能为一个函数实现这个东西。
任何人都可以帮我实现这个带有超时功能的东西。
最佳答案
根据您等待此设备响应的方式,您的问题的答案会有所不同。基本框架是:
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 中为一个函数实现超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074380/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!