fcntl로 nonblock 문자입력받기
글쓴이: xo56 / 작성시간: 일, 2018/04/01 - 6:09오후
리눅스에서 c로 리듬게임을 만드는중입니다
while문이 실행되며 노트가 내려오면서 키보드입력을받아서 맞게입력했나 처리하려고하는데
getchar같은함수로는 입력하지않으면 while문이멈춰서
int flag = fcntl(stdin, F_GETFL);
fcntl(stdin, F_SETFL, flag | O_NONBLOCK);
를 쓰면 nonblock 이 된다고하는데 정확히 어떻게사용해야하는지 모르겠습니다.
키보드입력을해도 입력값을 어떻게저장하고 비교해야하는지 모르겠습니다..
Forums:
tty 의 nonblocking 은 그 정도로
tty 의 nonblocking 은 그 정도로 간단하지 않습니다. tty 에 엄청나게 많은 다양한 기능이 있어서요.
https://www.gnu.org/software/libc/manual/html_node/Noncanon-Example.html
저 문서에서 경고하듯, stdin 은 어지간하면 바꾸지 않는 것을 추천드립니다.
원래대로 복구하지 않고 프로그램을 종료하거나 프로그램이 비정상 종료될 때 현재 사용중인 그 터미널이 망가집니다.
댓글 달기