select()함수를 쓰는데 문서와 맨페이지를 보면서 해서 그런지
이해가 잘 않가네요..
select(파일기술자+1,fd_set *readfds,fd_set *writefds,fd_set *
exceptfds,struct timeval *timeout)
이렇게 되어 있습니다..
파일 기술자라는 말이 -_- 무슨 말인지 잘 모르겠습니다.
그리고 왜 1을 더하는지도요..
fd_set을 제어할수 있는 매크로도 있는데
FD_ZERO,FD_SET,FD_CLR,FD_ISSET에..
근데 각 설명마다 파일기술자에 집합을 소거한다..
뭐 이런식으로..되어있습니다..
ㅡㅜ 내가 써놓고도 무슨 말을 하는지..
select설명좀 해주세요.. 그리고 매크로 FD형제들과 어떻게
연관되는건지..좀..부탁드립니다..
알기 쉽게 관련소스 올립니다..
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#define STDIN 0 /* file descriptor for standard input */
main()
{
struct timeval tv;
fd_set readfds;
tv.tv_sec = 2;
tv.tv_usec = 500000;
FD_ZERO(&readfds);
FD_SET(STDIN, &readfds);
/* don't care about writefds and exceptfds: */
select(STDIN+1, &readfds, NULL, NULL, &tv);
if (FD_ISSET(STDIN, &readfds))
printf("A key was pressed!");
else
printf("Timed out.");
}
좋은 밤 되세요..
--
더 열시미 살자!