[linux] curses에서 getch
글쓴이: onetwoeight / 작성시간: 토, 2022/12/10 - 1:27오후
질문 두 개 중에 아는 것 하나만 답해주셔도 너무너무 감사해요!!
Q1. curses.h를 include 해주었는데도 컴파일 할 때 -lcurses 플래그를 붙여주는 이유가 뭔가요?
Q2. input으로 받을 것도 getch()를 해주는 이유가 궁금해요! refresh()기능을 내포하고 있어서 refresh()를 주석처리하면 정상 작동하는데 getch()를 주석처리 했더니 화면이 아예 안타나내요ㅜ
#include <stdio.h> #include <curses.h> int main() { initscr(); clear(); move(10,20); addstr("Hello, world"); move(LINES -1, 0); refresh(); getch(); endwin(); return 0; }
Forums:
Q1) #include 는 컴파일을 위해서이고,
Q1) #include 는 컴파일을 위해서이고, -lcurses는 실행 파일 생성을 위한 라이브러리 링크를 위함입니다.
Q2) getch()는 유저의 입력을 한번 기다리기 위해서인데요 실행이 너무 빨리 휙 끝나기 때문에 유저에게 결과를 한번 확인하고 넘어가라는 의미입니다.
감사합니다!! stdio.h를 link
정말 감사합니다!! 그런데 stdio.h는 라이브러리링크를 해주지않고 curses 라이브러리만 링크해준 까닭은 무엇인가요..?
예. 기본적으로 C에 포함되어 있는 라이브러리도
예. 기본적으로 C에 포함되어 있는 라이브러리도 있습니다. printf() 같은 것은 많이 쓰기 때문에 기본적으로 딸려 들어 옵니다. 여기(https://en.wikipedia.org/wiki/C_standard_library) 한번 보세요.
ncurses 같은 것은 별도 (3rd party) 라이브러리이기 때문에 명시적으로 알려줘야 합니다.
댓글 달기