Меньше получает ввод с клавиатуры от stderr?

Я смотрю на кодМеньше' утилита, в частности, как он получает ввод с клавиатуры. Интересно, что в строке 80 файла ttyin.c он устанавливает дескриптор файла для чтения из:

     /*
      * Try /dev/tty.
      * If that doesn't work, use file descriptor 2,
      * which in Unix is usually attached to the screen,
      * but also usually lets you read from the keyboard.
      */
  #if OS2
      /* The __open() system call translates "/dev/tty" to "con". */
      tty = __open("/dev/tty", OPEN_READ);
  #else
      tty = open("/dev/tty", OPEN_READ);
  #endif
      if (tty < 0)
          tty = 2;

Isn»Дескриптор файла 2 stderr? Если так, то WTH ?! Я думал, что ввод с клавиатуры был отправлен через стандартный ввод.

Интересно, даже если вы делаетеls -l * | lessПосле завершения загрузки файла вы все равно можете использовать клавиатуру для прокрутки вверх и вниз, но если вы это сделаетеls -l * | viтогда ви будет на тебя кричать, потому чточитать со стандартного ввода. Какие'большая идея? Как я оказался в этой странной новой стране, где stderr - это способ сообщать об ошибках на экран и читать с клавиатуры? Я нене думаю, что ям в Канзасе больше ...

Ответы на вопрос(4)

Ваш ответ на вопрос