char buf[1];
if (argc == 1) {
while (read(STDIN_FILENO, buf, 1) > 0) {
write(1, buf, sizeof(buf));
}
}
У меня есть несколько вещей, которые я хотел бы прояснить по поводу этого фрагмента. Запускаем его, ./exec_file Допустим, мы просто нажимаем Enter. Мы переходим к следующей строке и читаем 1 байт '\n', затем записываем его в stdout, выводя нас вниз еще на одну строку ... достаточно просто. Теперь допустим, что мы набираем h, затем Enter. Программа выдает h в следующей строке с невидимым '\n'.
Глядя на код после того, как мы набираем h, он считывает его в буфер, а затем записывает в стандартный вывод, но каким-то образом программа ждет, чтобы выплюнуть его в следующей строке, пока я не нажму Enter .. как?
Наконец, когда мы впервые попадаем в цикл while, сначала не читаем return 0, поскольку изначально мы ничего не ввели ??
hhh, тогда введите, он формирует файл, содержащийhhh\n, затем читает - person ajanakos   schedule 01.04.2016