2010-01-27 3 views
2

C를 사용하여 입출력을보다 잘 제어 할 수있는 콘솔 애플리케이션을 만드는 방법을 알고 싶습니다. 예를 들어, 텍스트 편집기 나노가 파일 내용의 특정 부분을 어떻게 표시합니까? 화면에 표시 한 다음 하단에 명령 목록을 고정시킵니다. Win32 API를 사용하여 Windows에서이 작업을 수행 할 수 있다는 것을 알고 있지만 유닉스/리눅스는 무엇입니까?리눅스/유닉스 콘솔 그래픽/컨트롤

답변

5

화면에 특정 위치에 항목을 배치하고 화면 그리기를 제어하는 ​​인터페이스가 ncurses 이상인 경우가 많습니다. api는 리눅스 시스템 전반에 걸쳐 표준이며 유닉스에서도 유닉스의 상용 버전에서 사용되는 저주의 변형에 따라 구현이 정의 될 수 있지만 일부 표준 ncurses 기능은 호환 가능하다.

+0

그러나 ncurses가 Linux (우분투)에서 사용하는 것은 무엇입니까? – MrD

+0

@Matthew : 위 링크에서와 같이 ncurses는 GNU Midnight Commander (파일 관리자), Yuse (수세), GNU Screen을 사용합니다. – t0mm13b

+0

@Matthew : 또한 ncurses는 termcap (터미널 기능) 얼마나 많은 라인과 얼마나 많은 컬럼과 같은 콘솔 ASCII, VTerm의 종류와 같은 콘솔의 종류를 결정하는 ... 중간 계층으로 termcap 생각, 하단 계층은 콘솔 그래픽, ncurses api. – t0mm13b

1

이외에도 손에 달린 작업에 따라 newt, 컬러 텍스트 모드 용 라이브러리, 위젯 기반 사용자 인터페이스, 적절한 대안을 찾을 수 있습니다. 시각적 인 결과가 newt로 더 나은 경우가 있습니다.

1

낮은 수준의 작업 만 수행하려는 경우 termcap 또는 terminfo 라이브러리를 사용하고 싶을 것입니다.

nano와 다른 모든 대화 형 터미널 응용 프로그램에서 수행하는 방법을 원한다면 ncurses를 사용하고 싶을 것입니다. 그렇게하면 터미널 제어 논리를 구현하는 데 소요되는 시간을 줄이고 개발중인 실제 응용 프로그램에 더 많은 시간을 할애 할 수 있습니다.