gpt4 book ai didi

java - 从 C 发送信号到 Java

转载 作者:太空狗 更新时间:2023-10-29 16:02:23 25 4
gpt4 key购买 nike

所以我有这个 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

最佳答案

其中一种方法是读取 C 程序的标准输出

    Process p = Runtime.getRuntime().exec("c.exe");
InputStream stdout = p.getInputStream();

现在C程序可以和Java程序对话了

关于java - 从 C 发送信号到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com