Что произойдет, если размер буфера Stdout меньше, чем струна, напечатанная в C?Linux

Anonymous
Что произойдет, если размер буфера Stdout меньше, чем струна, напечатанная в C?

Сообщение Anonymous »

Здравствуйте, я экспериментирую с буферизацией STDOUT в C и пытаюсь понять, что происходит, когда буфер меньше, чем написанная строка.

Код: Выделить всё

#include 
#include 

int main(void) {
char buf[15];
setvbuf(stdout, buf, _IOLBF, 15); // line-buffered buffer of 15 bytes

printf("Hello, World! from C");     // 20 characters

sleep(5); // Sleep for 5 seconds.

// fflush(stdout);

return 0;
}
< /code>

Строка составляет 20 символов, размер буфера составляет 15 байтов. Представляет значение мусора. 
Если я не понаправдут fflush (stdout); 
остальная часть строки ("rom c") напечатана правильно, чтобы быть ("Привет, мир! Из C").
Вопрос :

. C ") Когда буфер слишком маленький? Буферинг, промывки и fflush (stdout) влияют на выход в таких случаях?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... inted-in-c

Вернуться в «Linux»