Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÏÂselectºÍpollµÄÓ÷¨

select()º¯ÊýµÄ×÷ÓÃ
    ϵͳµ÷ÓÃselectºÍpollµÄºó¶ËʵÏÖ£¬ÓÃÕâÁ½¸öϵͳµ÷ÓÃÀ´²éѯÉ豸ÊÇ·ñ¿É¶Áд£¬»òÊÇ·ñ´¦ÓÚijÖÖ״̬¡£Èç¹ûpollΪ¿Õ£¬ÔòÇý¶¯É豸»á±»ÈÏΪ¼´¿É¶ÁÓÖ¿Éд£¬·µ»ØÖµÊÇÒ»¸ö״̬ÑÚÂë
ÈçºÎʹÓÃselect()º¯Êý?
    select()º¯ÊýµÄ½Ó¿ÚÖ÷ÒªÊǽ¨Á¢ÔÚÒ»ÖÖ½Ð'fd_set'ÀàÐ͵Ļù´¡ÉÏ¡£Ëü('fd_set') ÊÇÒ»×éÎļþÃèÊö·û(fd)µÄ¼¯ºÏ¡£ÓÉÓÚfd_setÀàÐ͵ij¤¶ÈÔÚ²»Í¬Æ½Ì¨Éϲ»Í¬£¬Òò´ËÓ¦¸ÃÓÃÒ»×é±ê×¼µÄºê¶¨ÒåÀ´´¦Àí´ËÀà±äÁ¿£º
    fd_set set;
    FD_ZERO(&set);      
    FD_SET(fd, &set);   
    FD_CLR(fd, &set);   
    FD_ISSET(fd, &set); 
     
ÔÚ¹ýÈ¥£¬Ò»¸öfd_setͨ³£Ö»Äܰüº¬ÉÙÓÚµÈÓÚ32¸öÎļþÃèÊö·û£¬ÒòΪfd_setÆäʵֻÓÃÁËÒ»¸öintµÄ±ÈÌØÊ¸Á¿À´ÊµÏÖ£¬ÔÚ´ó¶àÊýÇé¿öÏ£¬¼ì²é fd_setÄܰüÀ¨ÈÎÒâÖµµÄÎļþÃèÊö·ûÊÇϵͳµÄÔðÈΣ¬µ«È·¶¨ÄãµÄfd_setµ½µ×ÄܷŶàÉÙÓÐʱÄãÓ¦¸Ã¼ì²é/Ð޸ĺêFD_SETSIZEµÄÖµ¡£*Õâ¸öÖµÊÇϵͳÏà¹ØµÄ*£¬Í¬Ê±¼ì²éÄãµÄϵͳÖеÄselect() µÄmanÊֲᡣÓÐһЩϵͳ¶Ô¶àÓÚ1024¸öÎļþÃèÊö·ûµÄÖ§³ÖÓÐÎÊÌâ¡£[ÒëÕß×¢£º Linux¾ÍÊÇÕâÑùµÄϵͳ£¡Äã»á·¢ÏÖsizeof(fd_set)µÄ½á¹ûÊÇ128(*8 = FD_SETSIZE=1024)¡¡¾¡¹ÜºÜÉÙÄã»áÓöµ½ÕâÖÖÇé¿ö¡£]
selectµÄ»ù±¾½Ó¿ÚÊ®·Ö¼òµ¥£º
    int select(int nfds, fd_set *readset, fd_set *writeset,
               fd_set *exceptset, struct timeval *timeout); 
ÆäÖУº
nfds    
     ÐèÒª¼ì²éµÄÎļþÃèÊö·û¸öÊý£¬ÊýÖµÓ¦¸Ã±ÈÊÇÈý×éfd_setÖÐ×î´óÊý
     ¸ü´ó£¬¶ø²»ÊÇʵ¼ÊÎļþÃèÊö·ûµÄ×ÜÊý¡£
readset   
     ÓÃÀ´¼ì²é¿É¶ÁÐÔµÄÒ»×éÎļþÃèÊö·û¡£
writeset
     ÓÃÀ´¼ì²é¿ÉдÐÔµÄÒ»×éÎļþÃèÊö·û¡£
exceptset
     ÓÃÀ´¼ì²éÒâÍâ״̬µÄÎļþÃèÊö·û¡£(×¢£º´íÎó²¢²»ÊÇÒâÍâ״̬)
timeout
     NULLÖ¸Õë´ú±íÎÞÏ޵ȴý£¬·ñÔòÊÇÖ¸Ïòtimeval½á¹¹µÄÖ¸Õ룬´ú±í×î
     ³¤µÈ´ýʱ¼ä¡£(Èç¹ûÆäÖÐtv_sec


Ïà¹ØÎĵµ£º

LinuxÖжϽâÎö

ÕªÒª:±¾Õ½«Ïò¶ÁÕßÒÀ´Î½âÊÍÖжϸÅÄ½âÎöLinuxÖеÄÖжÏʵÏÖ»úÀíÒÔ¼°LinuxÏÂÖжÏÈçºÎ±»Ê¹Óá£×÷ΪʵÀýÎÒÃǵÚÒ»½«Ïò¡¶i386Ìåϵ½á¹¹¡·Ò»ÕÂÖдòÔìµÄϵͳ¼ÓÈëÒ»¸öʱÖÓÖжϣ»µÚ¶þ½«Îª´ó¼Ò×¢½âRTCÖжϣ¬Ï£Íûͨ¹ýÕâÁ½¸öʵÀý¿ÉÒÔ°ïÖú¶ÁÕßÕÆÎÕÖжÏÏà¹ØµÄ¸ÅÄʵÏֺͱà³Ì·½·¨¡£
ÖжÏÊÇʲô
ÖжϵĺºÓï½âÊÍÊǰëÖм䷢Éú×è¸ô¡¢Í£¶Ù»ò ......

windowsÏ´ linux ϶àÐéÄâ²âÊÔ»ú°²×°¼°ÉÏÍøÅäÖÃ

Ò»¡¢ÏÂÔØVMwareÈí¼þ²¢°²×°
¶þ¡¢¹âÅÌ.iso·½Ê½°²×°linux
Èý¡¢¹²ÏílinuxºÍwindowsĿ¼
ËÄ¡¢½«"±¾µØÁ¬½Ó"ÉèΪ¹²Ïí·½Ê½£¬½ûÖ¹ÆäËûÐéÄâ»úÁ¬½Ó
      ´ò¿ªÐéÄâ»úÔÚÐéÄâ»ú±à¼­ÖÐÉèÖÃΪ'ÇŽÓ"·½Ê½;
²¢Ñ¡ÖÐDevice statusϵÄÁ½ÏֻËùÒÔÓÃÇŽӷ½Ê½²»ÓÃhost-only·½Ê½ÉÏÍøÊÇÒòΪ
ÔÚÓ÷ÓÉÆ÷ʱhost-onl ......

linux writeµÄÐÐΪ

´Ówrite()µ÷Ó÷µ»ØÊ±£¬ÄÚºËÒѾ­½«»º³åÇøËùÌṩµÄÊý¾Ýµ½Äں˵Ļº³åÇø£¬µ«ÊÇÎÞ·¨±£Ö¤Êý¾ÝÒѾ­Ð´³öµ½ÆäÔ¤¶¨µÄÄ¿µÄµØ¡£µÄÈ·£¬Ð´Èëµ÷Ó÷µ»ØµÄËÙ¶ÈʵÔÚÌ«¿ìÁË£¬¿ÉÄÜûÓÐʱ¼äÍê³É¸ÃÏîÄ¿µÄ¹¤×÷¡£´¦ÀíÆ÷ºÍÓ²ÅÌÖ®¼äµÄÐÔÄܲîÒìʹµÃ´ËÀàÁîÈËÍ·Í´µÄÐÐΪÏÔ¶øÒ×¼û¡£
ÊÂʵÉÏ£¬Èç¹ûÓû§¿Õ¼äÓ¦ÓóÌÐò·¢³öwrite()ϵͳµ÷Óã¬LinuxÄں˻áÏȽøÐÐÈ ......

linux ½ø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎÄ


¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
 
 
 
 
 
 
2010Äê3ÔÂ3ÈÕ 10:51  Î¬¿â¿ª·¢Íø  ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬ ......

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç3 LinuxÄں˼°Äں˱à³Ì


ÔÚÉ豸Çý¶¯·½Ã棬Linux2.6Ïà¶ÔÓÚLinux2.4ÓнϴóµÄ¸Ä¶¯£¬ÕâÖ÷Òª±íÏÖÔÚÄÚºËAPIÖÐÔö¼ÓÁ˲»ÉÙй¦ÄÜ£¨ÈçÄÚ´æ³Ø£©¡¢sysfsÎļþϵͳ¡¢ÄÚºËÄ£¿é´Ó.o±äΪ.ko¡¢Çý¶¯Ä£¿é±àÒ뷽ʽ¡¢Ä£¿éʹÓüÆÊý¡¢Ä£¿é¼ÓÔØºÍÐ¶ÔØº¯ÊýµÄ¶¨ÒåµÈ·½Ãæ
LinuxÄÚºËÖ÷ÒªÓнø³Ìµ÷¶È¡¢ÄÚ´æ¹ÜÀí¡¢ÐéÄâÎļþϵͳ¡¢ÍøÂç½Ó¿ÚºÍ½ø³Ì¼äͨÐŵÈ5¸ö×Óϵͳ×é³É£¬ÈçÏÂͼ£º ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ