그래서 ProcessBuilder를 통해 C 프로그램을 호출하는 Java 프로그램이 있으며, 뭔가 발생하면 Java 프로그램에 알리기 위해 C 프로그램이 필요합니다. 나는 java prog에 대해 다음과 같은 코드를 가지고있다 :java에서 C 프로그램의 stdout을 읽으십시오.
String cmd[] = //string to run the c program in the terminal, no probs here
ProcessBuilder builder = new ProcessBuilder(cmd);
builder.redirectErrorStream(true);
Process process = builder.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
System.out.println(bufferedReader.ready());
System.out.println(bufferedReader.readLine());
주어진 지점의 c 프로그램은 java 프로그램에 뭔가를 알려야한다. 버퍼가 플러시 될 때까지 내가
char Buff[] = "output";
write(0, Buff, strlen(Buff)+1);
write(1, Buff, strlen(Buff)+1);
printf("output\n");
처럼 많은 것을 시도하지만이 글을 읽을 수있는 자바 프로그램을 얻을 어차피, 내가 할 수있는 유일한 출력은
false
null
출력을 듣기 위해 스트림 리더를 설정 한 후에 처리 *를 시작하지 않을까요? – Vulcan
나는이 물건에 대해 아무것도 모른다. 그래서 만일 내가 어리석은 사람이라면 나에게 들었다. 그러나 나에게 그것은 당신이 stderr에서 읽는 것처럼 보이고 stdout가 아닌 것처럼 들린다. 그것은 당신이 읽고 싶어하는 것처럼 들린다. ..? –
그것은'char buff [] = "output \ n"이거나; write (1, Buff, strlen (Buff));'printf ("출력 \ n"); fflush (stdout); – melpomene