- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
转自:
再论精确延时(usleep,nanosleep,select)
/*??????? make: gcc -o test_sleep test_sleep.c*//*??????? #include comm_main.h */#include stdio.h;#include stdlib.h;#include time.h;#include sys/time.h;#include errno.h;#include string.h;#include unistd.h;#include sys/types.h;
#define PRINT_USEAGE { \?? fprintf(stderr,\n Usage: %s usec ,argv[0]); \?? fprintf(stderr,\n\n);\}
intmain (int argc, char **argv){unsigned int nTimeTestSec = 0;??????? /* sec */unsigned int nTimeTest = 0;??????? /* usec */struct timeval tvBegin;struct timeval tvNow;int ret = 0;unsigned int nDelay = 0;??????? /* usec */fd_set rfds;struct timeval tv;int fd = 1;int i = 0;struct timespec req;unsigned int delay[20] =??? { 500000, 100000, 50000, 10000, 1000, 900, 500, 100, 10, 1, 0 };int nReduce = 0;??????????????? /* 误差 */
#if 0if (argc 2)??? {????? PRINT_USEAGE;????? exit (1);??? }nDelay = atoi (argv[1]);#endif
fprintf (stderr, %18s%12s%12s%12s\n, function, time(usec), realTime,?????????? reduce);fprintf (stderr,?????????? -------------------------------------------------------------------\n);
for (i = 0; i 20; i++)??? {????? if (delay[i] = 0)??????? break;????? nDelay = delay[i];
????? /*????? test usleep */????? gettimeofday (tvBegin, NULL);????? ret = usleep (nDelay);????? if (-1 == ret)??????? {????????? fprintf (stderr, usleep error . errno=%d [%s]\n, errno,?????????????????? strerror (errno));??????? }????? gettimeofday (tvNow, NULL);????? nTimeTest =??????? (tvNow.tv_sec - tvBegin.tv_sec) * 1000000 + tvNow.tv_usec -??????? tvBegin.tv_usec;????? nReduce = nTimeTest - nDelay;????? fprintf (stderr, \t usleep?????? %8u?? %8u?? %8d\n, nDelay, nTimeTest,nReduce);
????? /*????? test nanosleep */????? gettimeofday (tvBegin, NULL);????? req.tv_sec = nDelay / 1000000;????? req.tv_nsec = (nDelay % 1000000) * 1000;????? ret = nanosleep (req, NULL);????? if (-1 == ret)??????? {????????? fprintf (stderr, \t nanosleep??? %8u?? not support\n, nDel
您可能关注的文档
- SAP成本的会计岗位说明书.doc
- SAP方丈的-CO-第三夜-内部订单.doc
- SAP固定的资产主数据维护.ppt
- SAP-内的销订单流程.doc
- SAP培训的:LCSAP Unit Test MM-010-01 物料主数据 OK.doc
- SAP系统的常用功能列表.doc
- SAP系统的简介及XX公司ERP实施情况汇报.ppt
- SAP系统的收货和发票校验对会计业务的影响.doc
- SAP学习的资料—FICO模块学习笔记.doc
- SAP应付的业务处理详解.doc
- Semin的a - Dynamic Boundary Nonlinear.ppt
- Senso的r Fusion on TerraMax1.ppt
- sessi的on用法.ppt
- Sever的al Issues concerning the Application of Statute.doc
- Shenz的hen longsys company introduction,2015.ppt
- Socia的l Media Is Changing Everything.doc
- SOP 退的货作业规范 V0 2_1.ppt
- Sound的 Forge音频处理入门.ppt
- Sprin的g 事务管理.doc
- spss多的因子变异数分析.ppt
文档评论(0)