本文共 1084 字,大约阅读时间需要 3 分钟。
void ms_sleep(long lTime){ struct timeval sTime; sTime.tv_sec = lTime/1000; sTime.tv_usec = (lTime%1000)*1000; while (select(0, NULL, NULL, NULL, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}
关于select被打断返回剩余时间网上没有太多的介绍,在man里面有这样一句话
(ii) select() may update the timeout argument to indicate how much time was left. pselect() does not change this argument.
void ms_sleep(long lTime){ struct timespec sTime; sTime.tv_sec = lTime / 1000; sTime.tv_nsec = (lTime % 1000) * 1000000; while (nanosleep(&sTime, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}void us_sleep(long lTime){ struct timespec sTime; sTime.tv_sec = lTime / 1000; sTime.tv_nsec = (lTime % 1000000) * 1000; while (nanosleep(&sTime, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}
转载地址:http://itqq.baihongyu.com/