2

我正在尝试在 C 程序和 Java 程序之间进行通信。C 程序(在一个单独的线程中)通过 JNI 运行并写入我们将调用的命名管道my_pipe。这很好用;cat我可以通过在终端中运行来验证所有内容是否都写在这里。

但是,当我尝试读取写入管道的字符串时,问题就来了。我不确定要使用的正确对象是什么。我环顾了stackoverflow,并尝试摆弄随机访问文件和扫描仪等。看来我可能遇到了阻塞问题,因为我总是挂断读取命令,例如 RAF.readUTF8() 和 Scanner.hasNext()。

STRUCTURE:创建一个线程通过JNI运行C程序(全部写在这个线程中);创建一个线程来读取文件(管道),直到第一个线程不再活动(所有读取都在这个线程中)。

最终,我试图将 C 输出重定向到 JTextArea,所以任何使这更容易的解决方案都是一个加号。

4

0 回答 0