루아에서 curses 프로그램을 작성하려고합니다. (대부분 C 언어로 포팅하기 전에 개발이 쉽기 때문입니다.) 사용자가 명령을 보낼 준비가 끊임없이 필요하지만 타이머의 만료와 같은 다른 신호를 처리 할 수 있기를 원합니다. 이것에 대한 예제 사용은 사용자가 너무 오래 걸리는 경우 사용자를 잔소리하게하고, 네트워크를 통해 수신 된 메시지를 인쇄하는 것입니다.블로킹 액션을 기다리는 동안 무언가를하십시오.
curses.getch()
을 호출하면 프로그램은 다음 명령을 실행하기 전에 데이터를 반환 할 때까지 기다립니다. 키를 누르기 전에 다른 이벤트가 발생하면 스크립트는이를 변경하기 위해 다른 조치가 취해지지 않으면 스크립트에 반응 할 수 없습니다.
curses.halfdelay()
을 사용하여 잠시 후에 curses.getch()
을 종료하려고 시도했지만 다른 것을 다시 호출하기 전에 수행 할 수 있지만 이상한 오류가 발생했습니다. 나는 또한 pthreads를 사용하는 방법을 배웠다고 생각했지만 어디서부터 시작해야할지 모른다. 나는 리눅스를 사용하고 있는데, 이미 curses를 사용하고 있기 때문에 솔루션이 Windows에서 작동하지 않는다고해도 괜찮다.
EDIT : 저주와 관련된 많은 세부 정보를 제공하여 사람들을 오도 할 수도 있지만 다른 차단 작업과 함께 사용할 수있는보다 일반적인 솔루션을 선호합니다.
어떤 luacurses를 사용하고 계십니까? 이 라이브러리는 아주 오래된 것 같습니다. 당신은 현대적인 ncurses dll에 대해 그것을 구축하고 있습니까? – Schollii
@Schollii Linux를 실행 중이고 Windows를 신경 쓰지 않아도 DLL을 사용하여 빌드하는 이유는 무엇입니까? 그 문제는 제쳐두고, 나는 솔직히 내가 사용하는 버전을 정확하게 알지 못한다. 우분투 저장소에 있으며 루아 5.1만을 지원합니다. – Wutaz
이 문맥에서는 구별이 분명히 부적절합니다. – Schollii