LinuxÄÚºËÖеÄ˫ѻ·Á´±í
LinuxÄÚºËÖеÄ˫ѻ·Á´±í
2006-11-27 19:14
˫ѻ·Á´±í´«Í³ÊµÏÖ
ÔÚ´«Í³µÄ˫ѻ·Á´±íʵÏÖÖУ¬Èç¹û´´½¨Ä³ÖÖÊý¾Ý½á¹¹µÄ˫ѻ·Á´±í£¬Í¨³£²ÉÓõİ취ÊÇÔÚÕâ¸öÊý¾Ý½á¹¹µÄÀàÐͶ¨ÒåÖмÓÈëÁ½¸ö£¨Ö¸Ïò¸ÃÀàÐͶÔÏóµÄ£©Ö¸ÕënextºÍprev¡£ÀýÈ磺
typedef struct foo {
…
struct foo *prev;
struct foo *next;
…
} foo_t;
ÕâÀï¸ø³öÁ˶ÔÓ¦µÄ½Úµã½á¹¹¡¢¿ÕµÄ˫ѻ·Á´±íºÍ·Ç¿ÕµÄ˫ѻ·Á´±íʾÒâͼ¡£
LinuxÄÚºËÖÐ˫ѻ·Á´±íʵÏÖ
ÔÚlinuxÄÚºËÖУ¬ÓдóÁ¿µÄÊý¾Ý½á¹¹ÐèÒªÓõ½Ë«Ñ»·Á´±í£¬ÀýÈç½ø³Ì¡¢Îļþ¡¢Ä£¿é¡¢Ò³ÃæµÈ¡£Èô²ÉÓÃ˫ѻ·Á´±íµÄ´«Í³ÊµÏÖ·½Ê½£¬ÐèҪΪÕâЩÊý¾Ý½á¹¹Î¬»¤¸÷×ÔµÄÁ´±í£¬²¢ÇÒΪÿ¸öÁ´±í¶¼ÒªÉè¼Æ²åÈ롢ɾ³ýµÈ²Ù×÷º¯Êý¡££¨ÓÉÓÚÓÃÀ´Î¬³ÖÁ´±íµÄnextºÍprevÖ¸ÕëÖ¸Ïò¶ÔÓ¦ÀàÐ͵ĶÔÏó£¬Òò´ËÒ»ÖÖÊý¾Ý½á¹¹µÄÁ´±í²Ù×÷º¯Êý²»ÄÜÓÃÓÚ²Ù×÷ÆäËüÊý¾Ý½á¹¹µÄÁ´±í¡££©
ÔÚLinuxÔ´´úÂëÊ÷µÄinclude/linux/list.hÎļþÖУ¬²ÉÓÃÁËÒ»ÖÖ£¨Êý¾Ý½á¹¹£©ÀàÐÍÎ޹صÄ˫ѻ·Á´±íʵÏÖ·½Ê½¡£Æä˼ÏëÊǽ«Ö¸ÕëprevºÍnext´Ó¾ßÌåµÄÊý¾Ý½á¹¹ÖÐÌáÈ¡´¦Àí¹¹³ÉÒ»ÖÖͨÓõÄ"Ë«Á´±í"Êý¾Ý½á¹¹list_head£¬¶ølist_head±»×÷Ϊһ¸ö³ÉԱǶÈëµ½ÒªÀÁ´µÄÊý¾Ý½á¹¹£¨±»³ÆÎªËÞÖ÷Êý¾Ý½á¹¹£©ÖС£ÕâÑù£¬Ö»ÐèÒªÒ»Ì×ͨÓõÄÁ´±í²Ù×÷º¯Êý¾Í¿ÉÒÔ½«list_head³ÉÔ±×÷Ϊ"Á¬½Ó¼þ"£¬°ÑËÞÖ÷Êý¾Ý½á¹¹Á´½ÓÆðÀ´¡£ÈçÏÂͼËùʾ£º
ÔÚLinuxÄÚºËÖеÄ˫ѻ·Á´±íʵÏÖ·½Ê½Ï£º
1. Á´±í½á¹¹×÷Ϊһ¸ö³ÉԱǶÈëµ½ËÞÖ÷Êý¾Ý½á¹¹ÄÚ£»
2. ¿ÉÒÔ½«Á´±í½á¹¹·ÅÔÚËÞÖ÷½á¹¹ÄÚµÄÈκεط½£»
3. ¿ÉÒÔΪÁ´±í½á¹¹È¡ÈκÎÃû×Ö£»
4. ËÞÖ÷½á¹¹¿ÉÒÔÓжà¸öÁ´±í½á¹¹¡£
ÏÂÃæÎÒÃǽ«»ùÓÚLinux 2.4.21·ÖÎöLinuxÄÚºË˫ѻ·Á´±íµÄʵÏÖ¼°Ó¦Óá£
ÉùÃ÷ºÍ³õʼ»¯
Á´±í½á¹¹¶¨ÒåÈçÏ£º
struct list_head {
struct list_head *next, *prev;
};
ÎÒÃÇ¿ÉÒÔÓÃstruct list_headÉùÃ÷Ò»¸öÁ´±í½Úµã¡£ÐèҪעÒâµÄÊÇ£¬Linux µÄÿ¸ö˫ѻ·Á´±í¶¼ÓÐÒ»¸öÁ´±íÍ·£¬Á´±íÍ·Ò²ÊÇÒ»¸ö½Úµã£¬Ö»²»¹ýËü²»Ç¶Èëµ½ËÞÖ÷Êý¾Ý½á¹¹ÖУ¬¼´²»ÄÜÀûÓÃÁ´±íÍ·¶¨Î»µ½¶ÔÓ¦µÄËÞÖ÷½á¹¹¡£
ÎÒÃÇ¿ÉÒÔµ÷ÓÃINIT_LIST_HEAD()ºê³õʼ»¯Á´±í½Úµã£¬½«nextºÍprevÖ¸Õë¶¼Ö¸ÏòÆä×ÔÉí¡£Èç¹ûÕâ¸ö½ÚµãÊÇÁ´±íÍ·£¬ÎÒÃǾ͹¹ÔìÁËÒ»¸ö¿ÕµÄ˫ѻ·Á´±í¡£
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
LIST_HEAD()ºê
Ïà¹ØÎĵµ£º
i
nt send( SOCKET s, const char FAR *buf, int len, int flags );
²»ÂÛÊǿͻ§»¹ÊÇ·þÎñÆ÷Ó¦ÓóÌÐò¶¼ÓÃsendº¯ÊýÀ´ÏòTCPÁ¬½ÓµÄÁíÒ»¶Ë·¢ËÍÊý¾Ý¡£
¿Í»§³ÌÐòÒ»°ãÓÃsendº¯ÊýÏò·þÎñÆ÷·¢ËÍÇëÇ󣬶ø·þÎñÆ÷Ôòͨ³£ÓÃsendº¯ÊýÀ´Ïò¿Í»§³ÌÐò·¢ËÍÓ¦´ð¡£
¸Ãº¯ÊýµÄµÚÒ»¸ö²ÎÊýÖ¸¶¨·¢ËͶËÌ ......
sourceÃüÁîÓ÷¨£º
source FileName
×÷ÓÃ:ÔÚµ±Ç°bash»·¾³Ï¶ÁÈ¡²¢Ö´ÐÐFileNameÖеÄÃüÁî¡£
×¢£º¸ÃÃüÁîͨ³£ÓÃÃüÁî“.”À´Ìæ´ú¡£
È磺source .bash_rc Óë . .bash_rc ÊǵÈЧµÄ¡£
sourceÃüÁî(´Ó C Shell ¶øÀ´)ÊÇbash shellµÄÄÚÖÃÃüÁî¡£µãÃüÁ¾ÍÊǸöµã·ûºÅ£¬(´ÓBourne Shell¶øÀ´)ÊÇsourceµÄÁíÒ»Ãû³Æ¡£Í¬Ñùµ ......
×¼±¸Ìõ¼þ£º±ØÒªµÄÄںˣ»±ØÒªµÄÎĵµ£»±ØÒªµÄ»úÆ÷£¨ÐéÄâ»úÒ²¿É£©¡£
µÚÒ»ÖÜ£º
1.linuxºÍunixÏà±ÈÓÐÄÄÐ©ÌØµã£¿
2.Äں˱à³ÌºÍÓû§¿Õ¼ä±à³ÌÏà±ÈÓÐÄÄЩ²»Í¬Ö®´¦£¿
3.×Ô¼º±àÒëÒ»ÏÂÄںˣ¬Äã±àÒë³É¹¦ÁËô£¿Èç¹û²»³É¹¦£¬ÓÐʲôÎÊÌ⣿ʹÓÃÄãбàÒëµÄ ......
ÔÚÕÒGTKµÄ¿ª·¢Îĵµ£¬·¢ÏÖÔÚ /usr/share/doc/libgtk2.0-doc/ÀïÓиö tutorialµÄĿ¼£¬Àï±ßÓиögtk-tutorial.devhelpµÄÎļþ£¬ÓÚÊÇÊÔÊÔÓÐûÓÐdevhelpÕâ¸ö¹¤¾ß£¬ÔÀ´ÕæµÄÓУ¬¶øÇÒÒѾ°²×°¹ýÁË£¡
ÓÚÊÇÓÃËüÀ´´ò¿ªÕâ¸ö¿ª·¢Îĵµ£¬·Ç³£ºÃÓ᣶øÇÒÀï±ß»¹ÓÐÆäËû¿âµÄ°ïÖúÎĵµÄØ£¡ ......
Ò»¡¢¸ÅÒª
Ïêϸ½éÉÜ£ºhttp://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
ÐźÅÊÇUNIXºÍLinuxϵͳÏìÓ¦½áÌõ¼þ¶ø²úÉúµÄÒ»¸öʼþ¡£½ÓÊÕµ½ÐźŵĽø³Ì»áÏàÓ¦µØ²ÉȡһЩÐж¯¡£
£¨1£© ÔÚϵͳ ......