Я пытаюсь заставить мою C-программу выполнять строковый буфер (stdout будет захвачен Java-программой), но вместо этого она всегда полностью буферизируется. Вот пример кода:
#include <stdio.h>
#include <stdlib.h>
int main(){
char c;
setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
printf("Hello world\n");
c = getchar();
printf("got char: %c\n", c);
}
Если я укажу _IOLBF или _IOFBF, то я не увижу вывод, пока не введу char. Только если я использую _IONBF, я увижу вывод перед getchar (). Разве _IOLBF не должен делать то же самое, так как "Hello World \ n" содержит '\ n'?
Я использую Visual C ++ 2005.
Спасибо