Se è necessario gestire input arbitrariamente lunghi nulla impedisce di usare una normale fgets, continuando a riallocare raddoppiando ad esempio ogni volta le dimensioni del buffer fino a quando non si raggiunge un newline.