c/c++语言开发共享想要在C中为一个函数实现超时

这里我有一个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

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐