| [ CnUnix ] in KIDS 글 쓴 이(By): cdpark (박종대) 날 짜 (Date): 1995년06월08일(목) 19시00분37초 KDT 제 목(Title): [A] alarm() 잘 이용하기 내지는 비슷한 거 아니... 그 나쁜 alarm을 이용해 keyboard를 제어하다뇨... 그렇게 짜면, 아무리 잘 짜더라도 CPU hog가 되 버리죠. select() 함수를 이용하세요. 원래 I/O multiplexing을 위해 설계된 것이긴 하지만, timeout을 setting할 수 있으니, 대신 쓸 수도 있죠. 해상도(?)도 microsecond니깐, 불편할리 없을테고요. system에서 제공해주는거라, 그리 load가 걸리지도 않고요... 아니면... TERMIO나 TERMIOS의 기능을 이용하는(ioctl 사용) 방법도 있고요.. signal을 이용하는 건, 최후의 수단입니다. (V7 호환 unix 수준? minix 정도..) (자세한건 (h)elvis에 들어있는 unix.c를 보세요. BSD/SYSV 각각의 상황에 맞는 해답이 들어 있습니다.) (BSD:select(), SYSV:ioctl() 사용) 물론, 요즘 시스템이야 BSD/SYSV call은 다 지원하니, select()/ioctl() 아무거나 사용해도 되죠.. -- 씨디팍 박종대 |