sar.txt"),函数出不来]: 我设定了一个定时器,2s为间隔,经过测试,接受定时信号没有问题,每次都可以执行system("echo aaaaa > sar.txt");但是将这句换成system("sar 1 > sar.txt"),就不能从system函数退出来,何....">

当前位置:  技术问答>linux和unix

用定时器执行system("sar 1 > sar.txt"),函数出不来

    来源: 互联网  发布时间:2015-10-12

    本文导语:  我设定了一个定时器,2s为间隔,经过测试,接受定时信号没有问题,每次都可以执行system("echo aaaaa > sar.txt");但是将这句换成system("sar 1 > sar.txt"),就不能从system函数退出来,何故? 设置信号函数: static int setinte...

我设定了一个定时器,2s为间隔,经过测试,接受定时信号没有问题,每次都可以执行system("echo aaaaa > sar.txt");但是将这句换成system("sar 1 > sar.txt"),就不能从system函数退出来,何故?
设置信号函数:
static int setinterrupt()
{
  struct sigaction act;
  
  act.sa_flags = SA_SIGINFO;
  act.sa_sigaction = fun;//这里是包含执行system("sar 1 > sar.txt")的函数
  if((sigemptyset(&act.sa_mask) == -1) ||
     (sigaction(SIGALRM, &act, NULL) == -1))
  {
    return -1;
  }
  return 0;
}
设置间隔函数:
static int setperiodic(double sec)
{
  timer_t timerid;
  struct itimerspec value;
  
  if(timer_create(CLOCK_REALTIME, NULL, &timerid) == -1)
  {
    return -1;
  }
  value.it_interval.tv_sec = (long)sec;
  value.it_interval.tv_nsec = (sec - value.it_interval.tv_sec) * BILLION;
  if(value.it_interval.tv_nsec >= BILLION)
  {
    value.it_interval.tv_sec++;
    value.it_interval.tv_nsec -= BILLION;
  }
  value.it_value = value.it_interval;
  return timer_settime(timerid, 0, &value, NULL);
}

|
shell下直接运行,根据你的结果,是不支持阻塞的。
但是在程序里,act.sa_flags = SA_SIGINFO ;却未声明不支持阻塞,因此程序在某个部分的确阻塞住了。后来你通过act.sa_flags = SA_SIGINFO | SA_NODEFER;取消了组塞。
其实就是改变了环境变量的结果。

|
sar 1> sar.txt能退出么,换sar 1>sar.txt &试试

|
同意楼上,可能阻塞住了,试试。

|
非也!!!请加上绝对路径试一试,也就是sar的绝对路径

    
 
 

您可能感兴趣的文章:

  • Linux有定时器函数吗?是不是要自己实现?如果有的话是什么函数呢?谢谢
  • 请问,能在cygwin下编译基于windows定时器的函数吗?
  • Linux下有定时器库函数吗?
  • ***请问linux下面有没有使用精度到ms级的定时器API函数啊?***
  • linux中的串口通信判断一帧数据是否传输完整时,用定时器检查前后两帧数据的间隔时间,该用什么定时函数,有详细代码最好,谢谢!
  • 想实现一个定时器,周期为一个小时以上,请问用什么函数好?
  • 向sourceid提问,还是关于“在定时器到时后,应该发送什么信号让scanf()函数返回?”的
  • 在定时器到时后,应该发送什么信号让scanf()函数返回?
  • linux下,定时器怎么使用?想定时1s,1s到后跳转到相应的处理函数。谢谢
  • 设置定时器,运行一个函数,为什么不能通过编译
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux 多个定时器 几乎同时到时 , 部分定时器信号 丢失的问题.
  • 定时器的问题请教
  • Linux用户态可以通过同一段程序创建多个定时器么?
  • 请问如何实现多个并行的定时器?
  • 想做个定时器,不知道怎么做?
  • Jquery定时器的简单示例
  • 请问linux下的定时器怎么使用??******************************
  • 定时器如何销毁?
  • linux 定时器销毁
  • 请教关于unix中定时器的语法
  • tcp重传定时器,怎么实现的啊?
  • Linux 提供的基于文件描述符的定时器接口
  • 如何实现多定时器?
  • linux下如何设置高精度定时器?
  • linux定时器!
  • 定时器与getchar()的问题??奇怪!
  • 多定时器问题
  • 关于select定时器的问题
  • 定时器问题
  • 有关定时器在多核CPU上运行的一个问题?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3