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

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


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â

Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâƪ·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´ËתÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨Õâƪ²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......

Linux½ø³Ì¹ÜÀíÖ®CFSµ÷¶ÈÆ÷·ÖÎö

------------------------------------------
±¾ÎÄϵ±¾Õ¾Ô­´´,»¶Ó­×ªÔØ!
תÔØÇë×¢Ã÷³ö´¦:http://ericxiao.cublog.cn/
------------------------------------------
Ò»:Ç°ÑÔ
CFSµ÷¶ÈÔÚ2.6.23°æ±¾µÄkernelÖб»¼ÓÈë.ÒýÓÃIngo
MolnarµÄÒ»¾ä»°:80%µÄÉè¼Æ¿ÉÒÔÓÃÒ»¾ä»°À´¸ÅÀ¨:CFSÖÐÒ»¸ö”ÀíÏëµÄ¶àÈÎÎñ´¦ÀíÆ÷”.Ò² ......

LinuxÏß³Ìͬ²½: »¥³âÁ¿(mutex)

»¥³âÁ¿´Ó±¾ÖÊÉÏ˵¾ÍÊÇÒ»°ÑËø, Ìṩ¶Ô¹²Ïí×ÊÔ´µÄ±£»¤·ÃÎÊ.
1. ³õʼ»¯:
    ÔÚLinuxÏÂ, Ï̵߳Ļ¥³âÁ¿Êý¾ÝÀàÐÍÊÇpthread_mutex_t. ÔÚʹÓÃÇ°, Òª¶ÔËü½øÐгõʼ»¯:
¶ÔÓÚ¾²Ì¬·ÖÅäµÄ»¥³âÁ¿, ¿ÉÒÔ°ÑËüÉèÖÃΪPTHREAD_MUTEX_INITIALIZER, »òÕßµ÷ÓÃpthread_mutex_init.
¶ÔÓÚ¶¯Ì¬·ÖÅäµÄ»¥³âÁ¿, ÔÚÉêÇëÄÚ´æ(malloc)Ö® ......

linux³£ÓÃÃüÁî

Êä³öµ½ÆÁĻͬʱ±£´æµ½Îļþ:
cat outfile | tee savefile
CPUʹÓÃÂÊ¡¢ÄÚ´æʹÓÃÂÊ£º
top¡¢
vmstat -n 1
IOʹÓÃÂÊ£º
iostat
ÍøÂç״̬£º
netstat
²é¿´Îļþϵͳ´ò¿ªµÄ¾ä±ú£º
lsof
²é¿´Îļþ»òsocketµÄËùÓÐÕߣº
fuser
½âѹrpm°ü£º
rpm -ivh file.rpm
²éÕÒ°üÊÇ·ñ±»ÏµÍ³°²×°£º
rpm -qal | grep file ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ