Меньше получает ввод с клавиатуры от 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 - это способ сообщать об ошибках на экран и читать с клавиатуры? Я нене думаю, что ям в Канзасе больше ...