J'ai donc ce programme Java qui crée des processus qui exécutent un certain programme C sur le terminal (unix), et je dois notifier le programme Java quand quelque chose arrive dans le programme C (avant la fin). Comment puis-je faire ceci? Je sais que je vais avoir besoin de signaux, mais je n'ai pas beaucoup d'expérience sur le sujet.Envoyer le signal de C vers Java
Merci d'avance!
EDIT: Ce les changements que j'ai fait à la java, après avoir appelé le processus:
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);
je ce que je faisais dans le C quand je veux informer le java:
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);
Mais après l'avoir exécuté, j'ai seulement:
INPUT
/INPUT
Process exitValue: 0
Utilisez cette http://stackoverflow.com/questions/13904318/reading- a-substring-from-a-string-value à titre d'exemple, il semble faire ce que vous voulez, essayez-le –