搜索
查看: 1375|回复: 21
打印 上一主题 下一主题

sleep()用不了?我明明是在win7环境啊?

[复制链接]
楼主
发表于 2018-2-7 23:31:05 | 显示全部楼层
Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的Sleep()函数是以毫秒为单位的,sleep(1000);才是休眠1秒。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec)。
sleep(1000) 改成sleep(1)试下,而且sleep函数要引入#include<unistd.h> 这个标准库吧!

点评

#include<unistd.h>不对❌,应该是#include <windows.h>!!!  发表于 2018-2-8 09:47
一派胡言  发表于 2018-2-8 09:23
沙发
发表于 2018-2-8 20:45:22 | 显示全部楼层
xuxiang 发表于 2018-2-7 23:31
Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的Sleep()函数是以 ...

#include<stdio.h>
#include<unistd.h>
#include<windows.h>

int main() {
        printf("3");
        sleep(1);
        printf("2");
        system("pause");
        return 0;
}

我这样写编译可以啊

找到一个解释:
在windows下的Sleep()函数需要包含windows.h头文件,而在Linux下需要包含的头文件是unistd.h头文件,说明sleep()函数不是标准的C语言库,而且在Windows下Sleep()睡眠时间为毫秒,而Linux下的sleep()函数时间为秒,如果需要实现更精确的时间,Linux下可以采用usleep()函数,微妙级别,在Windows下貌似没有更精确的,只能到毫秒级别(个人观点,还没证实)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表