gpt4 book ai didi

c - 想在 C 中为一个函数实现超时

转载 作者:太空狗 更新时间:2023-10-29 17:23:06 25 4
gpt4 key购买 nike

这里我有一个功能是监听模式。此函数列出了我从某些设备获得的内容。

在这里,当我的函数处于监听模式时,我想创建超时。如果我不会从特定设备获得任何响应而不是我想退出此功能并必须通知。

如果在此超时期限内我将收到设备的响应,那么我必须继续工作并停止此超时,并且在任何持续时间内完成此工作都没有限制。

那么我怎样才能为一个函数实现这个东西。

任何人都可以帮我实现这个带有超时功能的东西。

最佳答案

根据您等待此设备响应的方式,您的问题的答案会有所不同。基本框架是:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com