Timer 如何在linux应用层使用定时器

Timer 如何在linux应用层使用定时器,timer,Timer,我正试图在Linux上用C编写一个简单的应用程序。当按下一个按钮时,电机启动,20秒后,它会被计时器停止。显然,我不需要一个重复计时器,一个一次性计时器可以完成这项工作 我需要知道的是,我可以使用哪个计时器api设置超时,并在计时器过期时触发我的函数 非常感谢。我终于明白了。 对于我的情况,如果足够的话,使用报警。基本上,您需要定义StartMotor()和stopMotor()函数,并将stopMotor函数附加到信号(SIGALRM,StopMotot) 您已经解释了您想要什么,但用户不会为

我正试图在Linux上用C编写一个简单的应用程序。当按下一个按钮时,电机启动,20秒后,它会被计时器停止。显然,我不需要一个重复计时器,一个一次性计时器可以完成这项工作

我需要知道的是,我可以使用哪个计时器api设置超时,并在计时器过期时触发我的函数

非常感谢。

我终于明白了。 对于我的情况,如果足够的话,使用报警。基本上,您需要定义StartMotor()和stopMotor()函数,并将stopMotor函数附加到信号(SIGALRM,StopMotot)


您已经解释了您想要什么,但用户不会为您编写大量代码。你应该自己尝试,当你有具体问题时再回来。
RUN_DURATION      30  // 30 seconds
static bool MotorStarted = false;

static void StopMotor(int sig);

void  main(void){

while(1)
{
   if (IsPBPressed( )) //polling status of  push button.
   {

         if(!MotorStarted) //if motor is running, preceed startmotor,
         {                    // otherwise, ignore this subsequent request.

             MotorStarted = true;
              startMotor() 
             signal(SIGALRM, StopMotor);// start a timer. motor stop when the timer expires. 
             alarm(RUN_DURATION);              
         }
      }
   } //IsPBPressed( )
}