| [ CnUnix ] in KIDS 글 쓴 이(By): HellCat (reentrant.�P) 날 짜 (Date): 1995년08월04일(금) 08시54분49초 KDT 제 목(Title): re: 터미날 모드 fcntl() 이나 ioctl() 을 보세요. 만약 open() 을 직접 하시는 경우에는 오픈 플래그에 O_NDELAY 등을 or 로 빗플래그를 더해줘서 쓰시면 되고. 이미 얻어진 fd 를 바꿀때는 위의 fcntl 이나 ioctl 을 쓰시면 됩니다. 단 한가지 아주 주의 할것은 사용하는 tty 또는 stdin/out 을 논블라킹모드로 내비두고 프로그램 터미네이트 하면 csh 사용을 해서 프로그램을 사용했을 경우 parent shell 들이 졸도 합니다. EOF 가 마구 날라오죠 왜냐면 논블라킹모드로 stdin/out 등이 바뀐체로 내비두게 되면 그 tty 등이 그대로 남아 있게 되어서 아예 쉘 자체가 졸도합니다. 요거 한가지만 주의 하시고... 바꾼다음에는 머 select() 나 poll() 을 쓰시면 될테고.. --- if (t_snddis(KIDS[i].fd, (struct t_call *)NULL) == -1) { t_error("날 죽여라!!"); longjmp ((jmp_buf) HELL, -1); } |