Как прочитать ввод неизвестной длины, используя fgets

Как я должен читать длинный ввод, используяfgets()Я не совсем понимаю.

Я написал это

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char buffer[10];
    char *input;
    while (fgets(buffer,10,stdin)){
        input = malloc(strlen(buffer)*sizeof(char));
        strcpy(input,buffer);
    }
    printf("%s [%d]",input, (int)strlen(input));
    free(input);
    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос