linux usleep函数参数溢出

来源:互联网 发布:foxit pdf editor mac 编辑:程序博客网 时间:2024/06/04 18:21


usleep函数的参数类型为unsigned int

https://linux.die.net/man/3/usleep


(1)usleep((0xffffff*1000));




由于传入的参数溢出被截断,


0xffffff*1000只运行了3892秒。



(2)   usleep((0xffffffff));

传入的参数刚好是usleep可接受的最大值,


0xffffffff运行了4295秒。比0xffffff*1000运行


的时间还要长





#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();}


0 0
原创粉丝点击