したがって、ProcessBuilder を介して C プログラムを呼び出す Java プログラムがあり、何かが発生したときに Java プログラムに通知する C プログラムが必要です。Java prog の次のコードがあります。
String cmd[] = //string to run the c program in the terminal, no probs here
ProcessBuilder builder = new ProcessBuilder(cmd);
builder.redirectErrorStream(true);
Process process = builder.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
System.out.println(bufferedReader.ready());
System.out.println(bufferedReader.readLine());
特定の時点での c プログラムは、Java プログラムに何かを通知する必要があります。私は多くのことを試しました
char Buff[] = "output";
write(0, Buff, strlen(Buff)+1);
write(1, Buff, strlen(Buff)+1);
printf("output\n");
しかし、Javaプログラムにこれを読み取らせることはできません。得られる唯一の出力は
false
null