usleep函数的参数类型为unsigned int
https://linux.die.net/man/3/usleep
复制代码
1(1)usleep((0xffffff*1000));
由于传入的参数溢出被截断,
0xffffff*1000只运行了3892秒。
复制代码
1(2) usleep((0xffffffff));
传入的参数刚好是usleep可接受的最大值,
0xffffffff运行了4295秒。比0xffffff*1000运行
的时间还要长
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27#include <stdio.h> #include <time.h> #include <stdlib.h> #include <string.h> #include <unistd.h> typedef unsigned long U32; void func() { U32 a ,b; a = time(NULL); printf("====%lu===",a ); //usleep((0xffffff*1000)); usleep((0xffffffff)); b = time(NULL); printf("====%lu===",b); printf("====%lu===",b-a); } int main() { func(); }
最后
以上就是魔幻夕阳最近收集整理的关于linux usleep函数参数溢出(睡眠多少微秒)的全部内容,更多相关linux内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复