선택 시간

2360 단어 select
방금 select에서 호출한 자료를 보았을 때 인터넷에서 이러한 사용법을 발견하고 다음과 같이 기록했다.
 1 //Socket    ,          :
2 nsock = accept(sock, (struct sockaddr *)&sin, &len);
3 iFlag = fcntl(nsock, F_GETFL);
4 iFlag |= O_NONBLOCK;
5 alarm(2);
6 fcntl(nsock, F_SETFL, iFlag);
7 alarm(0);
8 timeout.tv_sec = 1;
9 timeout.tv_usec = 0;
10 select(NULL, NULL, NULL, NULL, &timeout);
11 alarm(2);
12 len = read(nsock, upper_flag, 1);
13 alarm(0);
14 //...
15 //
16 timeout.tv_sec = 0;
17 timeout.tv_usec = 100000;
18 select(NULL, NULL, NULL, NULL, &timeout);

 
용도:
타이머 역할을 하기도 하고,sleep로도 사용할 수 있습니다.tvusec, 비교적 정확하면 백만분의 1초까지 정확합니다. 
sleep () 실제 휴면 시간은 휴면을 원하는 시간보다 많습니다. 이것은 CPU 부하 상황에 달려 있습니다. select () 는 휴면을 원하는 시간에 가깝고, 휴면을 원하는 시간이 비교적 짧을 때 (1초 이하일 때) 많이 사용됩니다. 
 http://www.ixpub.net/thread-1412054-1-1.html

좋은 웹페이지 즐겨찾기