【发布时间】:2012-02-14 01:53:22
【问题描述】:
什么是 Java-on-Linux 等价于 C 字节大小的 PC 架构硬件端口输入/输出功能?
对于输出,outb 如下所示:
tmp = inb(0x61);
if (tmp != (tmp | 0x01))
outb(0x61, tmp | 0x01);
对于输入,inb 如下所示:
tmp = (inb(0x61) & 0xfe);
outb(0x61, tmp);
目的:我想实现比这更少开销的东西:
try { Runtime.getRuntime().exec("beep") } catch (IOException e) {}
作为将代码 7(bell char)发送到标准输出的替代方法,因为这似乎已在 Ubuntu 中被积极禁用。 Toolkit 的嘟嘟声也是静音。
【问题讨论】:
-
在 Linux 中,一切都是文件。
-
您可以在 Linux 上运行 C(显然),这证明并非所有 Linux I/O 都是面向文件的。
-
不! Kangkan 建议您打开一些设备文件,例如
/dev/tty0或/dev/lp0。另见stackoverflow.com/a/8923009/841108 和easysw.com/~mike/serial -
如果您需要确切的功能,请使用 jni - 编写一个小型 C 函数,将其构建到共享库中,加载并调用它。
标签: java linux port hardware-interface hardware-port