Позволяет ли C поместить разделитель строки в конце байтов чтения, заполненных мусором, или это гарантируется, только если байты чтения являются символами?
Мне нужно прочитать что-то подобное из stdin, но я не знаю, сколько символов читать, и EOF не гарантируется:
Hello World!---full of garbage until 100th byte---
char *var = malloc(100 + 1);
read(0, var, 100); // read from stdin. Unfortunately, I do not know how many bytes to read and stdin is not guaranteed to hold an EOF. (I chose 100 as an educated guess.)
var[100] = '\0'; // Is it possible to place a terminator at the end if most of the read bytes are garbage ?