所以我有这个Java程序,它创建在终端(unix)上运行某个C程序的进程,并且当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