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

º¯ÊýÖ¸Õë&»Øµ÷º¯Êý&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 (*


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

Linux 2.6.20.xÄں˱àÒëÅäÖÃÑ¡Ïî¼ò½é

˵Ã÷1£º
ÎÄ×ÖÖеÄY±íʾѡÔñ½øÄںˡ£M±íʾ±à³ÉÄ£¿é¡£N±íʾ²»Ñ¡Ôñ¡£ÓеÄÖ»ÄÜÑ¡Y£¬ÓеÄÖ»ÄÜÑ¡M¡£
ÔÚmake menuconfig Ï£¬£ª±íʾY£¬M±íʾM£¬¿Õ°×±íʾN¡£
make xconfigÏ£¬√ ±íʾY£¬? ±íʾM£¬¿Õ°×±íʾN¡£
˵Ã÷2£º
²Ëµ¥ÖУ¬ÓеÄÑ¡ÏîÄãÑ¡ÁËY²Å³öÏÖ£¬ÓеÄÑ¡ÁËY£¬Ëü·´¶ø²»»á³öÏÖ¡£ÓеÄÑ¡Ïî¸ù±¾²»»áÌṩѡÔñ¡£ËùÒÔÎÒÌṩµ ......

ÔÚ RedHat Linux 64λϵͳÖÐDB2 9.7µÄÎÊÌâ½â¾ö·½·¨

DB2 °²×°Íê³Éºó×¼±¸Æô¶¯Ê±£¬ÏµÍ³±¨´í£¬ÏêϸÐÅÏ¢ÈçÏÂ
[db2inst1@localhost ~]$ db2start
db2start: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Ö´ÐÐÏÂÃæ¼ì²éÃüÁî
[db2inst1@localhost lib]$ cd /usr/lib
[db2inst1@localhost lib]$ ls -la libaio ......

ÈçºÎʵÏÖLinuxÎı¾Ä£Ê½ÏÂ×Ô¶¯¹ÒÔعâÇý

ÈçºÎʵÏÖLinuxÎı¾Ä£Ê½ÏÂ×Ô¶¯¹ÒÔعâÇý
http://blog.csdn.net/yzlworld/archive/2009/06/29/4307476.aspx
mountÊÇÓÃÀ´¹ÒÔØÎļþϵͳµÄ£¬¿ÉÒÔÔÚÆô¶¯µÄʱºò¹ÒÔØÒ²¿ÉÒÔÔÚÆô¶¯ºó¹ÒÔØ¡£ÔÚÆô¶¯ºó¹ÒÔØ¿ÉÒÔʹÓÃmountÃüÁîʵÏÖ£¬ÒªÊµÏÖÆô¶¯Ê±×Ô¶¯¹ÒÔØÉ豸ÔòÐèÆô¶¯autofs·þÎñ¾ÍÌṩÕâÖÖ¹¦ÄÜ¡£¸Ã¹¦ÄܾÍÏñwindowsÖеĹâÇý×Ô¶¯´ò¿ª¹¦ÄÜ£¬Ä ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ