当前位置:嗨网首页>书籍在线阅读

23-sleep的可移植实现

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.7.4 sleep的可移植实现

回顾一下我们在第2章中提到的select():

559.png 正如当时所提到的那样,select()提供了一种实现比秒级精度更高的sleep方法,而且该方法是可移植的。在很长一段时间内,可移植的UNIX程序由于sleep()无法满足短暂的睡眠需求而表现得很糟糕:usleep()并不是在各个系统上都实现的,而nanosleep()还没有实现。编程人员发现给select()的n传递0,并给所有三个fd_set指针传递NULL,以及把需要睡眠的时间传给timeout,就产生了一种可移植且有效的方法让进程睡眠:

560.png 如果需要考虑对于较早的UNIX系统的可移植性,使用select()可能是最好的办法。