2010-12-10 3 views
4

필자가 작성한 거의 모든 응용 프로그램은 HTML/Flex/Swing과 같은 GUI 형식이었고 대부분의 명령 행 응용 프로그램은 많은 상호 작용없이 매우 간단했습니다. 내가 한 대부분의 게임 보드를 반복해서 인쇄하는 인쇄/입력 루프를 수행하는 간단한 아스키 게임을 만드는 것입니다.emacs와 같은 명령 줄 응용 프로그램은 일반 stdin/stdout을 사용합니까?

나는 좀 더 복잡한 작업을 생각하고 있었고, 이맥스와 같은 고급 명령 행 응용 프로그램이 어떻게 작동하는지 궁금해했습니다. 구체적으로 말하자면, 키 누름에 반응하는 대화식 명령 줄을 어떻게 가질 수 있을지 모르겠으니 인쇄 -> 읽기 -> 인쇄 루프를 거치지 않고 터미널의 버퍼에서 작동하는 것처럼 보입니다. 그것은 모두 stdin/stdout kung fu인지 모릅니다. 아니면 완전히 다른 무언가입니까?

업데이트 - 여기에 광범위한 질문을하려고하지 않고 분명히 올바른 단어를 찾는 데 어려움이 있음을 분명히하고 싶습니다. 기본적으로, 나는 stdin/stdout을 사용하여 이멕스를 어떻게 작동 시킬지 모른다. 내가 인식하지 못하는 메커니즘을 사용하고 있습니까? 그렇다면 무엇입니까?

+0

일을. – vcsjones

+0

@ 카메론 - 왜? 그것은 토론이 아니며 매우 실질적인 답변이있는 진정한 질문입니다. Google에서 사용할 적절한 용어를 찾지 못하는 것 같습니다. –

+0

그것은 나에게 조금 넓게 느낀다. 그러나 그것은 단지 나의 의견이다. 나는 닫히기 위하여 투표하기 위하여 강하게 느끼지 않는다 :) 나를 틀리게하지 말라; 나는 그 대답에 관심이있다. 프로그래머가 더 적절한 지 아닌지 확실하지 않다. –

답변

2

당신은이 같은 프로그램에 대해 단지 stdin/stdout이 아니라는 것을 알고 있습니다. 일반적으로 단말 제어 라이브러리 (예 : curses)입니다.

일부 다른 임의의-선택 라이브러리는 다음과 같습니다

은 위키 백과에 Text user interface를 참조하십시오.

나는 이러한 라이브러리 중 하나를 사용하여 잘 알고 아니에요

하지만 the current version of terminfo.c in the emacs source은 저주를 사용합니까 제안, 다음 주석이 있습니다 이것에 대한 대답에 관심이

/* Interface to curses/terminfo library. 
    Turns out that all of the terminfo-level routines look 
    like their termcap counterparts except for tparm, which replaces 
    tgoto. Not only is the calling sequence different, but the string 
    format is different too. 
*/ 
+0

완벽한, 감사합니다! –

+0

emacs는 분명히 ** termcap ** 어플리케이션이며, 고레벨 curses 라이브러리를 사용하지 않습니다. –

관련 문제