º¯ÊýÖ¸Õë&»Øµ÷º¯Êý&linuxÖеÄsignalº¯Êý
1.
int (*func)();º¯ÊýÖ¸Õ룬ָÏòµÄº¯ÊýΪ¿Õ²ÎÊý£¬·µ»ØÕûÐÍ£»
2.
»Øµ÷º¯ÊýÊÇÒ»¸ö³ÌÐòÔ±²»ÄÜÏÔʽµ÷Óõĺ¯Êý£»Í¨¹ý½«»Øµ÷º¯ÊýµÄµØÖ·´«¸ø±»µ÷ÓÃÕß´Ó¶øÊµÏÖµ÷Óá£
»Øµ÷º¯ÊýÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý¡£Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õ루µØÖ·£©×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵ÕâÊǻص÷º¯Êý¡£
void f()£»// º¯ÊýÔÐÍ
ÉÏÃæµÄÓï¾äÉùÃ÷ÁËÒ»¸öº¯Êý£¬Ã»ÓÐÊäÈë²ÎÊý²¢·µ»Øvoid¡£ÄÇôº¯ÊýÖ¸ÕëµÄÉùÃ÷·½·¨ÈçÏ£º
void (*) ();
ÈÃÎÒÃÇÀ´·ÖÎöһϣ¬×ó±ßÔ²À¨»¡ÖеÄÐǺÅÊǺ¯ÊýÖ¸ÕëÉùÃ÷µÄ¹Ø¼ü¡£ÁíÍâÁ½¸öÔªËØÊǺ¯ÊýµÄ·µ»ØÀàÐÍ£¨void£©ºÍÓɱßÔ²À¨»¡ÖеÄÈë¿Ú²ÎÊý£¨±¾ÀýÖвÎÊýÊǿգ©¡£×¢Òâ±¾ÀýÖл¹Ã»Óд´½¨Ö¸Õë±äÁ¿-Ö»ÊÇÉùÃ÷Á˱äÁ¿ÀàÐÍ¡£Ä¿Ç°¿ÉÒÔÓÃÕâ¸ö±äÁ¿ÀàÐÍÀ´´´½¨ÀàÐͶ¨ÒåÃû¼°ÓÃsizeof±í´ïʽ»ñµÃº¯ÊýÖ¸ÕëµÄ´óС£º
// »ñµÃº¯ÊýÖ¸ÕëµÄ´óС
unsigned psize = sizeof (void (*) ());
// Ϊº¯ÊýÖ¸ÕëÉùÃ÷ÀàÐͶ¨Òå
typedef void (*pfv) ();
pfvÊÇÒ»¸öº¯ÊýÖ¸Õ룬ËüÖ¸ÏòµÄº¯ÊýûÓÐÊäÈë²ÎÊý£¬·µ»ØÀàÐÐΪvoid¡£Ê¹ÓÃÕâ¸öÀàÐͶ¨ÒåÃû¿ÉÒÔÒþ²Ø¸´Ôӵĺ¯ÊýÖ¸ÕëÓï·¨¡£
Ö¸Õë±äÁ¿Ó¦¸ÃÓÐÒ»¸ö±äÁ¿Ãû£º
void (*p) (); //pÊÇÖ¸Ïòijº¯ÊýµÄÖ¸Õë
pÊÇÖ¸Ïòijº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýÎÞÊäÈë²ÎÊý£¬·µ»ØÖµµÄÀàÐÍΪvoid¡£×ó±ßÔ²À¨»¡ÀïÐǺźóµÄ¾ÍÊÇÖ¸Õë±äÁ¿Ãû¡£ÓÐÁËÖ¸Õë±äÁ¿±ã¿ÉÒÔ¸³Öµ£¬ÖµµÄÄÚÈÝÊÇÊðÃûÆ¥ÅäµÄº¯ÊýÃûºÍ·µ»ØÀàÐÍ¡£ÀýÈ磺
void func()
{
/* do something */
}
p = func;
pµÄ¸³Öµ¿ÉÒÔ²»Í¬£¬µ«Ò»¶¨ÒªÊǺ¯ÊýµÄµØÖ·£¬²¢ÇÒÊðÃûºÍ·µ»ØÀàÐÍÏàͬ¡£
´«µÝ»Øµ÷º¯ÊýµÄµØÖ·¸øµ÷ÓÃÕß
ÏÖÔÚ¿ÉÒÔ½«p´«µÝ¸øÁíÒ»¸öº¯Êý£¨µ÷ÓÃÕߣ©- caller()£¬Ëü½«µ÷ÓÃpÖ¸ÏòµÄº¯Êý£¬¶ø´Ëº¯ÊýÃûÊÇδ֪µÄ£º
void caller(void(*ptr)())
{
ptr(); /* µ÷ÓÃptrÖ¸ÏòµÄº¯Êý */
}
void func();
int main()
{
p = func;
caller(p); /* ´«µÝº¯ÊýµØÖ·µ½µ÷ÓÃÕß */
}
Èç¹û¸³Á˲»Í¬µÄÖµ¸øp£¨²»Í¬º¯ÊýµØÖ·£©£¬ÄÇôµ÷ÓÃÕß½«µ÷Óò»Í¬µØÖ·µÄº¯Êý¡£¸³Öµ¿ÉÒÔ·¢ÉúÔÚÔËÐÐʱ£¬ÕâÑùʹÄãÄÜʵÏÖ¶¯Ì¬°ó¶¨¡£
3.º¯ÊýÖ¸ÕëÔÚlinuxÖеÄÓ¦ÓÃsignalº¯Êý
ÔÚUnix/LinuxÖÐsignalº¯ÊýÊDZȽϸ´ÔÓµÄÒ»¸ö,Æä¶¨ÒåÔÐÍÈçÏÂ:
void (*signal(int signo,void (*func)(int))) (int)
signal(int signo, void(*func)(int))ÊÇsignalº¯ÊýµÄÖ÷Ìå.
ÐèÒªÁ½¸ö²ÎÊý:intÐ͵Äsigno,ÒÔ¼°Ò»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õë.
void (*
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
³ö´¦:http://ericxiao.cublog.cn/
Ò»£ºÇ°ÑÔ
ÔÚ¼üÅÌÇý¶¯´úÂë·ÖÎöµÄ±Ê¼ÇÖУ¬½Ó´¥µ½ÁËinput×Óϵͳ.¼üÅÌÇý¶¯£¬¼üÅÌÇý¶¯½«¼ì²âµ½µÄËùÓа´¼ü¶¼Éϱ¨¸øÁËinput×Óϵͳ¡£Input×ÓϵͳÊÇËùÓÐI/OÉ豸Çý¶¯µÄÖмä²ã£¬ÎªÉϲãÌṩÁËÒ»¸öͳһµÄ½çÃæ¡£ÀýÈ磬ÔÚÖÕ¶ËϵͳÖУ¬ÎÒÃDz»ÐèҪȥ¹ÜÓжàÉÙ¸ö¼üÅÌ£¬¶àÉÙ¸öÊó±ê¡£ËüÖ»Òª´Óinput×ÓϵͳÖÐÈ¥È ......
mountÊÇÓÃÀ´¹ÒÔØÎļþϵͳµÄ£¬¿ÉÒÔÔÚÆô¶¯µÄʱºò¹ÒÔØÒ²¿ÉÒÔÔÚÆô¶¯ºó¹ÒÔØ¡£ÔÚÆô¶¯ºó¹ÒÔØ¿ÉÒÔʹÓÃmountÃüÁîʵÏÖ£¬ÒªÊµÏÖÆô¶¯Ê±×Ô¶¯¹ÒÔØÉ豸ÔòÐèÆô¶¯autofs·þÎñ¾ÍÌṩÕâÖÖ¹¦ÄÜ¡£¸Ã¹¦ÄܾÍÏñwindowsÖеĹâÇý×Ô¶¯´ò¿ª¹¦ÄÜ£¬Äܹ»¼°Ê±¹ÒÔØ¶¯Ì¬¼ÓÔØµÄÎļþϵͳ¡£ÃâÈ¥ÎÒÃÇÊÖ¶¯¹ÒÔÚÂé·³¡£ÒªÊµÏÖ¹âÇý£¬ÈíÅ̵ȵĶ¯Ì¬×Ô¶¯¹ÒÔØ£¬ÐèÒª½øÐÐÏà¹Øµ ......