본문 바로가기

리눅스프로그래밍

(2)
리눅스에서의 타이머 - signal로 이용하기 물론 디바이스 드라이버를 이용해서 CPU의 내장 타이머들을 이용해서 직접적으로 제어를 해도 되지만... 대략 1초 이상의 초단위 타이머를 사용하고자 한다면 심플하게 signal 함수를 이용해서 초단위의 타이머를 구현할 수 있다. signal 중에서 SIGALRM 이 있는데 이 signal은 alarm 함수가 보내는 signal 이다. 이 alarm을 주기적으로 발생하고 signal을 처리 하면 리눅스에서도 타이머를 사용할 수 있다. 리눅스 상에서 TImer는 언듯 잘 떠올려지지 않는다. 윈도우 시스템에서는 SetTimer를 사용하면 쉽게 타이머를 사용할 수 있지만 리눅스는 메세지 베이스가 아니기 때문에 쉽게 떠오르지 않는다. 하지만 리눅스 시스템에도 이벤트는 있다 바로 signal이다. signal을 주..
시그널 처리 프로그램 SIGINT, SIGQUIT, SIGTSTP 시그널(Ctrl+C, Ctrl+Z, Ctrl+\ 등등)이 발생시 이를 처리하는 프로그램입니다~ 시스템프로그래밍을 배울때 기초로 많이 작성하는 프로그램이죠 ㅋ 컨트롤+Z를 누르면 시그널이 메세지를 표시하고 반영되지 않도록 하는 프로그램이에요~ 코드는 맨 아랫줄에 받을 수 있는 링크가 있어요 ㅋ #include #include #include #include void catchsigint (int signo) { char handmsg[] = "I found SIGINT \n "; if(signo == 20) strcpy(handmsg, "I found SIGTSTP\n"); else if(signo == 3) strcpy(handmsg, "I found SIGQUIT\n"); int msglen = str..