linux selectº¯ÊýÓ÷¨
ת×Ô£ºhttp://www.91linux.com/html/article/kernel/20090102/15232.html
selectϵͳµ÷ÓÃÊÇÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±úµÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐÒ»¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£¹ØÓÚÎļþ¾ä±ú£¬Æäʵ¾ÍÊÇÒ»¸öÕûÊý£¬ÎÒÃÇ×îÊìϤµÄ¾ä±úÊÇ0¡¢1¡¢2Èý¸ö£¬0ÊDZê×¼ÊäÈ룬1ÊDZê×¼Êä³ö£¬2ÊDZê×¼´íÎóÊä³ö¡£0¡¢1¡¢2ÊÇÕûÊý±íʾµÄ£¬¶ÔÓ¦µÄFILE *½á¹¹µÄ±íʾ¾ÍÊÇstdin¡¢stdout¡¢stderr¡£
int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);²ÎÊýn´ú±íÎļþÃèÊö´Ê¼Ó1£»²ÎÊýreadfds¡¢writefds ºÍexceptfds ³ÆΪÃèÊö´Ê×飬ÊÇÓÃÀ´»Ø´«¸ÃÃèÊö´ÊµÄ¶Á£¬Ð´»òÀýÍâµÄ×´¿ö¡£ÏÂÃæµÄºêÌṩÁË´¦ÀíÕâÈýÖÖÃèÊö´Ê×éµÄ·½Ê½:
FD_CLR(inr fd,fd_set* set)£»ÓÃÀ´Çå³ýÃèÊö´Ê×ésetÖÐÏà¹Øfd µÄλ
FD_ISSET(int fd,fd_set *set)£»ÓÃÀ´²âÊÔÃèÊö´Ê×ésetÖÐÏà¹Øfd µÄλÊÇ·ñΪÕæ
FD_SET£¨int fd,fd_set*set£©£»ÓÃÀ´ÉèÖÃÃèÊö´Ê×ésetÖÐÏà¹ØfdµÄλ
FD_ZERO£¨fd_set *set£©£»ÓÃÀ´Çå³ýÃèÊö´Ê×ésetµÄÈ«²¿Î»
²ÎÊýtimeoutΪ½á¹¹timeval£¬ÓÃÀ´ÉèÖÃselect()µÄµÈ´ýʱ¼ä£¬Æä½á¹¹¶¨ÒåÈçÏ£º
struct timeval
{
time_t tv_sec;
time_t tv_usec;
};
Èç¹û²ÎÊýtimeoutÉèΪNULL£¬Ôò±íʾselect£¨£©Ã»ÓÐtimeout¡£
selectº¯ÊýÖ´Ðнá¹û£ºÖ´Ðгɹ¦Ôò·µ»ØÎļþÃèÊö´Ê״̬ÒѸıäµÄ¸öÊý£¬Èç¹û·µ»Ø0´ú±íÔÚÃèÊö´Ê״̬¸Ä±äÇ°Òѳ¬¹ýtimeoutʱ¼ä£¬Ã»Óзµ»Ø£»µ±ÓдíÎó·¢ÉúʱÔò·µ»Ø-1£¬´íÎóÔÒò´æÓÚerrno£¬´Ëʱ²ÎÊýreadfds£¬writefds£¬exceptfdsºÍtimeoutµÄÖµ±ä³É²»¿ÉÔ¤²â¡£´íÎó
Öµ¿ÉÄÜΪ£º
EBADF ÎļþÃèÊö´ÊΪÎÞЧµÄ»ò¸ÃÎļþÒѹرÕ
EINTR ´Ëµ÷Óñ»ÐźÅËùÖжÏ
EINVAL ²ÎÊýn Ϊ¸ºÖµ¡£
ENOMEM ºËÐÄÄÚ´æ²»×ã
³£¼ûµÄ³ÌÐòƬ¶ÎÈçÏ£º
fs_set readset£»
FD_ZERO(&readset);
FD_SET(fd,&readset);
select(fd+1,&readset,NULL,NULL,NULL);
if(FD_ISSET(fd,readset){……}
¼ì²â¼üÅÌÓÐÎÞÊäÈ룬ÍêÕûµÄ³ÌÐòÈçÏ£º
#include<sys/time.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<std
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÒÔÇ°Ò»Ö±¸ãC++½øÐÐC/S¿ª·¢£¬Ôø¾µÄÏë·¨ÊÇÈç¹ûÓлú»á£¬Ñ§Ñ§¸ãÍøÕ¾ºÍǶÈëʽ¿ª·¢
ûÏëµ½ÕÒµ½¹¤×÷µÄµÚ2Ìì¾ÍÓÐÁË×öÍøÕ¾µÄ»ú»á£¬Ò²×¬µ½ÁË×Ô¼º´óѧÆÚ¼ä×î¸ßµÄÒ»·Ý¹¤×Ê£¬10Ìì1000¿é
ÔÚʲôµÄ¶¼²»»áµÄÇé¿öÏ£¬¾¡È»´ðÓ¦ÈËÊ´¦µÄÀÏʦһ¸öÐÇÆÚдºÃÍøÕ¾µÄºǫ́
ÎÒ³ÐÈÏÕÒµ½¹¤×÷ºó×Ô¼ºÊÇÓеã¿ñÁË£¬ºÜ¶àÊÂûעÒâµ½£¬ºÜ¶àʺó»Ú²»ÁË¡£¡£¡£
......
/etc/inittabÎļþµÄ×ֶμ°Æä˵Ã÷
/etc/inittabÎļþÖÐÿ¸öµÇ¼ÇÏîµÄ½á¹¹¶¼ÊÇÒ»ÑùµÄ£¬¹²·ÖΪÒÔðºÅ“£º”·Ö¸ôµÄ4¸ö×ֶΡ£¾ßÌåÈçÏ£º
identifier : run_level : action : process
ÆäÖУ¬¸÷×Ö¶ÎÒÔ¼°ÓëÆäÏà¹ØµÄ˵Ã÷ÈçÏ£º
identifier
µÇ¼ÇÏî±êʶ·û£¬×î¶àΪ4¸ö×Ö·û¡£ÓÃÓÚΩһµØ±êʶ/etc/inittabÎļþÖеÄÿһ¸öµÇ¼ÇÏ ......
°²×°oralce10g R1(10.1)²½Öè·½·¨£º
µÚÒ»²¿·Ö£º
Ò». Ó²¼þ»·¾³£º
1. RAM£ºÖÁÉÙ512M
2. ½»»»·ÖÇø´óСÖÁÉÙ1G£¨»òÕßÊÇÄÚÔÚµÄ2±¶£©
3./tmpĿ¼ ÖÁÉÙÓÐ400M¿ÕÏпռä
4. oracleÈí¼þ°²×°¿Õ¼äÖÁÉÙÔÚ1.5G--3GÖ®¼ä£¨ÒÀ¾Ý°²×°oracleÀàÐͶø¶¨£©
&nbs ......
ÎÒÃÇÔÚLinuxÏ°²×°ÏµÍ³Èí¼þµÄʱºò,¾³£Óöµ½Ò»Ð©ÏµÍ³»·¾³±äÁ¿ÅäÖõÄÎÊÌ⡣ʲôÊÇ»·¾³±äÁ¿£¿ÈçºÎ¶¨ÖÆ»·¾³±äÁ¿£¿ÎÒ½«ÔÚÏÂÃæ×öһЩ½éÉÜ¡£
Ò»¡¢Ê²Ã´ÊÇ»·¾³±äÁ¿£¿
LinuxÊÇÒ»¸ö¶àÓû§µÄ²Ù×÷ϵͳ¡£¶àÓû§Òâζ×Åÿ¸öÓû§µÇ¼ϵͳºó£¬¶¼ÓÐ×Ô¼º×¨ÓõÄÔËÐл·¾³¡£¶øÕâ¸ö»·¾³ÊÇÓÉÒ»×é±äÁ¿Ëù¶¨Òå,Õâ×é±äÁ¿±»³ÆΪ»·¾³±äÁ¿¡£Óû§¿ÉÒÔ¶Ô×Ô ......