gpt4 book ai didi

java - 通过 Java 写入 unix 管道的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:22 27 4
gpt4 key购买 nike

我正在写入位于“/dev/fb0”的帧缓冲区。一切正常,直到我尝试使用挂起程序的 OutputStream 再次写入管道。我已经通过关闭输出流然后重新创建它来解决这个问题,但这看起来非常缓慢和生硬。


Framebuffer.java



public class Framebuffer extends Autobuffer {
私有(private) FileOutputStream out = null;
私有(private)文件管道=空;

公共(public)帧缓冲区(){
super (320、240);
}

公共(public)帧缓冲区(文件管道){
super (320、240);
尝试 {
out = new FileOutputStream(管道);
} catch (FileNotFoundException e){
e.printStackTrace();
}
this.pipe = 管道;
}

public void sync() 抛出 IOException {
out.write(getBytes());
关闭();
out = new FileOutputStream(管道);
}
}

有什么想法吗?

谢谢。

最佳答案

首先,除非发生了非常奇怪的事情,“/dev/fb0”是一个设备文件而不是管道。 [这是一个吹毛求疵的问题,但如果您使用了错误的术语,1) 人们将无法理解您的意思,并且 2) 您将难以找到答案。]

其次,这看起来是一种与帧缓冲区交互的奇怪方式!!

我怀疑问题在于您需要执行与 POSIX lseek 调用等效的操作,以便在每次绘制帧时将流位置设置为零。我找到了两种方法来做到这一点:

关于java - 通过 Java 写入 unix 管道的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2170132/

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