Функция 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() )?