我要做的是在Java应用程序中启动C程序可执行文件,并允许它们使用stdin和stdout相互通信.C程序将等待来自Java应用程序的命令并回显它.我用"gnugo --mode gtp"测试了java代码(gnugo在gtp模式下与stdin和stdout通信)并且它工作正常,但是我的C代码不能正常工作.任何建议都会非常感激.
C代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
unsigned int byte_read;
char *string, *tok;
int cmd_id;
int len = 64;
string = (char *) malloc(len + 1);
while (1) {
byte_read = getline(&string,&byte_read, stdin);
if (byte_read == -1) {
printf("Error reading input\n");
free(string);
exit(0);
//
} else {
printf("Got command: %s\n", string);
}
}
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
Java代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public …Run Code Online (Sandbox Code Playgroud)