gpt4 book ai didi

c++ - 用户空间中的 Linux C/C++ 计时器信号处理程序

转载 作者:IT王子 更新时间:2023-10-29 00:59:16 26 4
gpt4 key购买 nike

我需要一个 C/C++ linux 中的函数(例如信号处理程序),它每 'n' 毫秒被激活一次。如何设置信号等...以毫秒分辨率注册定时器事件。

精度不是特别关键,但需要在百毫秒左右。

我是 linux 的新手,我真的不知道从哪里开始。

最佳答案

setitimer(POSIX 2008 标记为 OBSolete)的一个更安全的替代方法是使用 POSIX 计时器,并让计时器到期函数在线程中运行,而不是在线程中运行信号处理程序。这样,您就不会仅限于使用异步信号安全功能。它们记录在此处:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_05

如果您不喜欢 POSIX 计时器 API,您可以改为创建一个只在循环中休眠的线程,并在除该线程之外的所有线程中阻止计时器信号。然后您可以在信号处理程序中自由使用您喜欢的任何函数,因为它将在单独的线程中运行,并且没有中断异步信号不安全函数的危险。

关于c++ - 用户空间中的 Linux C/C++ 计时器信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437240/

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