Я пытаюсь прочитать одну строку за раз, произвольной длины, из stdin в командной строке. Я не уверен, что смогу включить GNU readline и предпочитаю использовать библиотечную функцию.
Документация, которую я прочитал, предполагает, что getline
должен работать, но в моих экспериментах он не блокируется. Моя примерная программа:
#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;
}
создает No line
, что делает его непригодным для приема пользовательского ввода.
Как мне это сделать? Я знаю, что это должно быть тривиально, но я не смог понять это.