我知道键盘是标准输入并由文件引用stdin
。
我有时在笔记本电脑上工作时使用蓝牙 (BT) 键盘。我的笔记本电脑键盘和 BT 键盘这两个键盘同时工作。
那么,两个键盘都与 相关联吗stdin
?如果是,它们是如何同步的?
答案1
键盘只是一种输入设备,它与标准输入没有直接关系。程序的标准输入只是作为文件描述符 0 传递的抽象数据流。
许多使用标准输入的程序从键盘获取输入,但它们并不直接这样做。相反,如果没有其他指示,您的 shell 会将新程序的标准输入连接到您的终端,而终端又连接到您的键盘。输入来自键盘与程序无关,程序只看到来自终端的数据流。
至于两个键盘如何同时工作,这项工作通常是在内核级别执行的,而不是在终端或应用程序级别执行的。应用程序可以请求从其中一个键盘获取输入,也可以请求从所有键盘的多路复用器获取输入。这种表示通常适用于大多数人类输入设备,而不仅仅是键盘。
如果您使用 X 或内核与程序之间的类似中间层,则可能会出现更多抽象,但基本思想是相同的 - 实用程序应用程序通常不会访问键盘。