したがって、端末(unix)で特定のCプログラムを実行するプロセスを作成するこのJavaプログラムがあり、Cプログラムで何かが発生したときに(終了前に)Javaプログラムに通知する必要があります。これどうやってするの?信号が必要になることはわかっていますが、この件についてはあまり経験がありません。
前もって感謝します!
編集:これは、プロセスを呼び出した後にJavaに加えた変更です:
InputStream stdout = p.getInputStream();
InputStreamReader isr = new InputStreamReader(stdout);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<INPUT>");
while ( (line = br.readLine()) != null)
System.out.println(line);
System.out.println("</INPUT>");
int exitVal = p.waitFor();
System.out.println("Process exitValue: " + exitVal);
Javaに通知したいときにCで行ったこと:
char buff[20];
size_t nbytes;
ssize_t bytes_written;
int fd;
strcpy(buf, "This is a test\n");
nbytes = strlen(buf);
bytes_written = write(1, buff, nbytes);
しかし、それを実行した後、私は得るだけです:
INPUT
/INPUT
Process exitValue: 0