当前位置: 首页 > news >正文

河间市网站建设价格友情链接教程

河间市网站建设价格,友情链接教程,海北高端网站建设,做网站带来好处[常规] nanosleep() -- 更精确的延迟 [复制链接]beyes4220 主题 5152 帖子 3万 积分GROAD 曲径通幽&#xff0c;安觅芳踪。 积分30607发消息电梯直达楼主 发表于 2010-8-22 00:08:53 | 只看该作者 原型&#xff1a; #include <time.h>int nanosleep(const struct timesp…

[常规] nanosleep() -- 更精确的延迟 

[复制链接]
  
beyes

4220

主题

5152

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
30607
  • 发消息
电梯直达跳转到指定楼层
楼主
 发表于 2010-8-22 00:08:53 | 只看该作者 回帖奖励
原型:
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);

说明:
此函数将调用进程挂起,直到 req 里所指的时间结束。req 是 struct timespec 结构体的指针。struct timespec 结构体定义如下:
struct timespec {
   time_t tv_sec;        /* 秒 */
   long   tv_nsec;       /* 纳秒 */
};
如果在调用 nanosleep() 睡眠期间被信号所中断,nanosleep() 就会返回 -1,同时设置 errno 为 EINTR,并且会将剩余的时间写入由 rem 所指向同样时 struct timespec 类型的结构体中,如果 rem 为 NULL,就不会记录剩余时间。当信号处理完毕时,还会继续调用 nanosleep() 直到剩余时间用完为止。

测试程序:
#include <stdio.h>
#include <time.h>
#include <signal.h>
#include <errno.h>

void sigfunc (int sig_no)
{
     int temp = 1000;
     while (temp-- > 0)
     ;
}



int msleep (unsigned long milisec, int temp)
{
     struct timespec req = {0}, rem = {0};
     time_t sec = (int)(milisec / 1000);
     milisec = milisec - (sec * 1000);
     req.tv_sec = sec;            /*秒*/
     req.tv_nsec = milisec * 1000000L;    /*纳秒*/
     while (nanosleep (&req, &req== -1 && errno == EINTR{
         printf ("测试-%d被信号中断,剩余时间为: %ld秒%ld纳秒\n", temp, req.tv_sec, req.tv_nsec);
         continue;
     }
     return (1);
}


int main()
{
     struct sigaction sa = {0};
     sa.sa_handler = &sigfunc;
     sigaction (SIGINT, &sa, NULL);   //安装信号处理函数

     unsigned long a = 0;
     int temp = 1;
     scanf ("%ld", &a);

     for (;;) {
         if (a == 5{
             printf ("testing-%d\n", temp);
             msleep (a*1000, temp);  //将 nanosleep() 封装在 msleep() 中
             temp++;
        }
 else
             usleep (1000000);
     }
     return (1);
}
运行与输出:
$ ./nanosleep 
5
testing-1
testing-2
^C测试-2被信号中断,剩余时间为: 4秒120263116纳秒
^C测试-2被信号中断,剩余时间为: 3秒440359866纳秒
^C测试-2被信号中断,剩余时间为: 2秒320431341纳秒
^C测试-2被信号中断,剩余时间为: 1秒320495448纳秒
testing-3
... ...
上面,^C 表示按下 Ctrl + c 组合键,发出中断函数信号。
from:http://www.groad.net/bbs/thread-2621-1-1.html
 

转载于:https://www.cnblogs.com/the-tops/p/5711893.html

http://www.lbrq.cn/news/2527759.html

相关文章:

  • 外贸网站如何做谷歌怎么推广自己的网站
  • 知己知彼网站关键词搜索爱站
  • 网站建设需要哪些设备公司网络营销推广软件
  • 淄博网站建设排行榜搜索引擎广告形式有
  • 国内专业网站建设公司班级优化大师官网下载
  • 一品威客网接单app是真的吗专业网站优化培训
  • 广西桂林漓江网络公司seo推广
  • WordPress自己写主题优化设计三年级上册答案语文
  • 晋江做网站模板网站搜索排名靠前
  • 专门做日租房的网站网站关键词
  • 百度权重1关键词优化推广排名
  • 广州设计公司网站网络推广岗位职责和任职要求
  • magento做预订类网站备案查询官网
  • ae做网站导航苏州seo优化
  • 网站前端建设都需要什么问题广告投放平台都有哪些
  • 大连科技学院官方网站的建设与放今日实时热搜
  • 制作网站怎么做滚动条百度竞价推广价格
  • 淘宝客15套单页网站程序模板打包百度一下你就知道了官网
  • 深圳外贸建站网络推广联客易华夏思源培训机构官网
  • 网站设计欣赏襄阳网站推广优化技巧
  • 网站建设 考虑做seo网页价格
  • 江苏天矗建设集团网站品牌策略有哪些
  • 个人网站开发如何赚钱手机建站系统
  • 永久一级传奇网站网络推广比较经典和常用的方法有
  • 网站公告设计专业海外网站推广
  • 自己做的网站本地虚拟上传一个产品的网络营销方案
  • 个人网站制作网站天津seo推广
  • 中国建设银行泗水支行的网站营销网站定制
  • 如何通过axure做网站手机网站快速建站
  • 陕西网站建设公司哪有太原免费网站建站模板
  • DeepCompare文件深度对比软件:专业级文件对比操作全解析
  • 【源力觉醒 创作者计划】文心一言与deepseek集成springboot开发哪个更方便
  • 设计模式之代理模式
  • 三十四、【Linux常用工具】rsync+inotify实时同步演示
  • DooTask教育行业功能:开启高效学习协作新篇章
  • Django自带的加密算法