首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以用C编写自己的kbhit()程序?

是否可以用C编写自己的kbhit()程序?
EN

Stack Overflow用户
提问于 2015-05-06 13:36:59
回答 3查看 1.1K关注 0票数 3

我在我的大学上了一门编程课,我正在做一些项目。我想知道是否有可能编程我自己的kbhit()函数。如果可能的话,kbhit()是如何编码的。

目的是我需要知道我是如何使用函数工作的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-06 18:42:30

是也不是。

C语言没有输入和输出的概念。它依赖于一个标准库(本质上是用C编写的),而这个库又依赖于系统调用。

标准库和类Unix系统和Windows所共有的一组系统调用都不处理非阻塞系统调用,因此必须调用特定于系统的调用。

但是,您可以很容易地从C语言调用它们。

票数 3
EN

Stack Overflow用户

发布于 2015-05-06 18:28:48

那得看情况。

在windows stdio上(标准io,如stdin/stdout)总是阻塞,因此您需要使用os特定的系统调用来避免像read这样的阻塞调用。

在Linux上,您可以使用fcntl将stdio更改为非阻塞,从而避免了对特定函数调用的需要。

票数 2
EN

Stack Overflow用户

发布于 2015-05-06 18:33:34

是的,这是可能的。

这就是它的工作原理:

如果键在键盘缓冲区中,则返回一个非零整数。它不会等待按下一个键。

基本上,您可以从stdin (假设为C语言中键盘上的默认输入数据)进行检查。

有一个实现这里,您可以从这里开始。

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

https://stackoverflow.com/questions/30078444

复制
相关文章

相似问题

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