откройте файл /etc/security/limits.conf
и добавьте строку <user> soft nofile <value>
. для использования ulimit
изменитесь на пользователя root и попробуйте то же.
Можно читать из /dev/tty
или от /dev/stdin
.
getline choice < "/dev/tty"
/dev/tty
довольно повсеместно (даже один очень немногие, наряду с /dev/null
и /dev/console
требоваться POSIX), /dev/stdin
менее распространено, но по крайней мере GNU awk распознал бы его как значение stdin, даже если система не имеет такого файла устройства / специального файла.
На Linux (и Cygwin, но не другой Unix - любит), читая из /dev/stdin
не то же как читающий из stdin (fd 0), но вместо этого означает читать из того же файла как открытый на fd 0. Если бы тот файл является регулярным файлом, например, который начал бы читать из запуска файла вместо где fd 0 в настоящее время точки к в файле.
Поскольку GNU awk
дескрипторы соединяют каналом как /dev/stdin
отдельно (и обработка это как читающий из stdin), на Linux или Cygwin это вело бы себя по-другому по сравнению с другими приложениями, которые не делают той специальной обработки. Если Вы хотели поведение Linux/Cygwin в gawk
(который здесь вероятно не Ваш случай), Вы могли или использовать ///dev/stdin
или /dev/./stdin
для gawk
прекратить распознавать его как /dev/stdin
особый случай, или вероятно лучше здесь, если Вы намереваетесь полагаться на определенное поведение Linux/Cygwin, использует определенное Linux/Cygwin /proc/self/fd/0
путь (который /dev/stdin
на самом деле символьные ссылки на в тех системах).