다음과 같이 C 언어로 프로그램을 작성해야합니다 : 예를 들어, "a"를 누르면 단말기는 끝나지 않은 루프에서 입력 된 문자를 쓰게됩니다 aaaaaaaaaaaaaaaa ... 다른 키, 예를 들어 "b"가 누를 때까지. 최종 출력은 다음과 같아야합니다 : aaaaaaaaabbbbbbq (q는 프로그램을 종료해야합니다). 여기 내 코드 :리눅스에서 keypress를 사용하는 브레이크 루프
int main(int argc, char** argv) {
int c;
static struct termios staryTermios, novyTermios;
tcgetattr(STDIN_FILENO, &staryTermios);
novyTermios = staryTermios;
novyTermios.c_lflag &= ~(ICANON);
tcsetattr(STDIN_FILENO, TCSANOW, &novyTermios);
while ((c = getchar()) != 'q') {
putchar(c);
}
tcsetattr(STDIN_FILENO, TCSANOW, &staryTermios);
return 0;
}
이 버전은 한 번에 입력 된 문자를 작성 후 난 당신이 모두 공통 변수를 액세스하는 것 두 개의 스레드가 필요합니다 추측 다른 키를 누를 때
고마워,하지만 난 C 프로그래밍의 새로운 오전 및 스레드를 사용하는 방법을 모르겠다. 친구가 나를 대신 read() 함수를 사용하도록 제안 od getchar(). 하지만 난() 함수 또는 그와 같은 뭔가를 readout() 시간 초과하는 방법을 모르겠다 – user2151486