小编Vin*_*nce的帖子

使用stdin和stdout与Java通信外部C程序

我要做的是在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)

c java stdin stdout pipe

2
推荐指数
1
解决办法
2351
查看次数

标签 统计

c ×1

java ×1

pipe ×1

stdin ×1

stdout ×1