Функция read() не читает информацию из файлового дескриптора STDIN_FILENO

Вот простенький код для вывода того что ввел пользователь в терминале:

#include <help_file.h>

#define MAX_READ 20 

int
main(int argc, char *argv[])
{
    char buffer[MAX_READ];

    if (read(STDIN_FILENO, buffer, MAX_READ) == -1) // Считывание из стандартного потока ввода
        errExit("read"); // Если ошибка
    
    printf("The input data was: %s\n", buffer); // Вывод

    exit(EXIT_SUCCESS);
}

Однако после запуска программы терминал ничего не пишет, а просто мигает курсор. Почему так происходит? Можно ли обойтись без использования стандартных функций stdio (например scanf() )?


Ответы (0 шт):