Estoy tratando de leer una línea a la vez, de longitud arbitraria, desde stdin en la línea de comandos. No estoy seguro de si podré incluir la línea de lectura de GNU y preferiría usar una función de biblioteca.¿Cómo leer una línea de stdin, bloqueando hasta que se encuentre la nueva línea?
La documentación que he leído sugiere que getline
debería funcionar, pero en mis experimentos no bloquea. Mi programa de ejemplo:
#include <stdio.h>
int main()
{
char *line = NULL;
if (getline(&line, NULL, stdin) == -1) {
printf("No line\n");
} else {
printf("%s\n", line);
}
return 0;
}
produce No line
, lo que lo hace inadecuado para aceptar la entrada del usuario.
¿Cómo puedo hacer esto? Sé que debería ser trivial, pero no he sido capaz de resolverlo.
'getline()' * does * block (recién probado en 'stdin'). ¿Puedes publicar código de muestra? – LSerni
Posible duplicado de [Cómo leer una línea de la consola en C] (http://stackoverflow.com/questions/314401/how-to-read-a-line-from-the-console-in-c) –