首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kbhit实现的问题

kbhit实现的问题
EN

Stack Overflow用户
提问于 2010-10-20 01:30:45
回答 1查看 832关注 0票数 0

这是我找到的kbhit实现,但由于某种原因,它只是等待一个键被按下,而不是返回某个非0的结果。它并不能真正起到kbhit的作用...

代码语言:javascript
复制
int kbhit(void)
{
    struct timeval tv;
    fd_set read_fd;

    tv.tv_sec=0;
    tv.tv_usec=0;
    FD_ZERO(&read_fd);
    FD_SET(0,&read_fd);

    if(select(1, &read_fd, NULL, NULL, &tv) == -1)
        return 0;

    if(FD_ISSET(0,&read_fd))
        return 1;

    return 0;
}

有人能给我解释一下问题出在哪里吗?顺便说一句,我用的是Linux。

我想你可能误解了我的意思,并认为它实际上是在击键后返回非零值。我的问题是kbhit总是等待击键。

EN

回答 1

Stack Overflow用户

发布于 2010-10-20 01:41:33

stdin可能是行缓冲的。在尝试检测按键时,您需要将其切换到无缓冲状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3971024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档