Что произойдет, если размер буфера 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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