从C发送信号到Java
发布时间:2020-12-16 09:41:01 所属栏目:百科 来源:网络整理
导读:所以我有这个 Java程序创建在终端上运行某个C程序的进程(unix),并且我需要在C程序中发生某些事情时(终止之前)通知Java程序.我怎样才能做到这一点?我知道我需要信号,但我对这个问题没有多少经验. 提前致谢! 编辑:这是我在调用进程后对java所做的更改: Inp
所以我有这个
Java程序创建在终端上运行某个C程序的进程(unix),并且我需要在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 testn"); nbytes = strlen(buf); bytes_written = write(1,buff,nbytes); 但运行后我只得到: INPUT /INPUT Process exitValue: 0 解决方法
其中一种方法是阅读你的C程序的标准输出
Process p = Runtime.getRuntime().exec("c.exe"); InputStream stdout = p.getInputStream(); 现在C程序可以与Java程序通信 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |