0
에 입력 :비 블로킹 우리는 매우 간단한 카운터 사용은 ncurses를 취할 경우 Gforth
cbreak()
의
Ctrl 키을 사용하여 있기 때문에, 어떤 키 (OK를 누른 후 중단
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ncurses.h>
int main(void) {
struct timespec start;
clock_gettime(CLOCK_REALTIME, &start);
initscr();
cbreak();
nodelay(stdscr, TRUE);
{
int key = -1;
struct timespec delay, now;
do {
clock_gettime(CLOCK_REALTIME, &delay);
delay.tv_sec = 0;
delay.tv_nsec = 1000L * 1000L * 1000L - delay.tv_nsec;
nanosleep(&delay, NULL);
clock_gettime(CLOCK_REALTIME, &now);
mvprintw(1, 1, "%ld\n", (long)(now.tv_sec - start.tv_sec));
refresh();
key = getch();
if (key >= 0)
break;
} while (now.tv_sec - start.tv_sec < 60);
}
endwin();
return 0;
}
-C 항상없이 작동합니다 추가 노력 ...).
하지만 카운터를 일시 중지하거나 즉시 재설정하는 기능 (예 : +/- 1 초)을 추가하는 것과 같이 더 복잡하게 만들 수 있습니다.
확실히 차단되지 않는 키보드 입력이 필요합니다.
Gforth에서이 작업을 수행 할 수 있습니까? 좋아, 내가 SIGINT 같은 인터럽트를 잡는 방법을 알고 있지만, 위와 같은, 어떤 키 또는 어떤 미리 결정된 열쇠를 위해 일하고?
이 질문으로 C 태그를 제거합니다. IMO는 C와 거의 관련이 없습니다 (즉, C 프로그래머의 관심을받지 못함). 동의하지 않으면 다시 추가하십시오. – jforberg