2013-09-12 2 views
7

Я бег кода из книги программирования в Lua ... http://www.lua.org/pil/3.6.htmlпрерывание интерпретации Lua без Ctrl -c Бросает

, когда я запускаю этот код в терминале переводчика ... он продолжает чтение входных данных навсегда ...

list = nil 
    for line in io.lines() do 
     list = {next=list, value=line} 
end 

Ctrl C возвращает меня в приглашение/bash. Есть ли другая команда, чтобы сломать? Как я могу сломать/вернуть из куска кода lua без выхода из интерпретатора?

ответ

3

Вы можете указать конец входных данных для стандартного ввода, используя либо Ctrl-Z или Ctrl-D.

4

Нажатием Ctrl-C в Unix-подобной системы, вы отправляете процесс сигнал SIGINT, который по умолчанию будет завершить процесс.

Ваша программа продолжает чтение с входа навсегда, потому что она блокирует вызов io.lines(), который продолжает считывание со стандартного ввода. Чтобы прервать его, отправьте свой терминал EOF, это делается нажатием Ctrl-D в Unix-подобной системе.

В Windows Ключ для отправки EOF is Ctrl-Z.

+0

спасибо. Ctrl + D - это то, что я искал. В Linux Ctrl + Z возвращается в приглашение>^Z [2] + Stopped lua – Punkroku

Смежные вопросы