gpt4 book ai didi

java - 在应用程序启动时从 java 清空字符设备

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:21 24 4
gpt4 key购买 nike

我的应用程序从一个字符设备读取,该设备是从内核空间填充的。目前我正在使用 RandomAccessFile 访问它,该文件工作正常。

我的问题是,在启动应用程序之前,数据已写入字符设备。(每秒至少有1个恒定数据)

所以,我想“忽略”在开始应用程序之前插入的数据。

问题是,我无法判断该字符设备中当前有多少数据。这就像从管道中读取一样,我尝试了一些 Reader 类,但访问长度总是会引发非法查找异常。

我认为有一种方法可以在我开始从中读取数据之前“清空”字符设备,也许有人可以为我指出正确的方向。我从来没有使用过非阻塞 io,比如 java.nio。东西,这是要走的路吗?

不幸的是,如果没有准备好发布的代码,如果您需要一些,请告诉我。

最佳答案

好吧,我没有找到解决这个问题的好方法。

我发现的唯一解决方案是跳过手动检查 System.nanoTime(Scala 代码!):

var run = true
val test = new Array[Byte](10000); //<- needs to be that big!
var count = 0;
device = new RandomAccessFile("/dev/mydevice", "r")
while (run) {
val time = System.nanoTime();
device.read(test)
count = count +1
if ((System.nanoTime() - time)>100000000) {
run = false
}
}
device.close
println("Skipped ["+count+"] lines")

如果有人能提出更好的解决方案,我很感激。

关于java - 在应用程序启动时从 java 清空字符设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8050558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com