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

ÉîÈëÀí½âLinuxÄÚºËÖеÄÁ´±í

      ×î½ü£¬¿ªÊ¼ÑжÁÒ»ÏÂLinuxµÄÄں˴úÂ룬¸ÕÒ»¿ªÊ¼£¬¾ÍÓÐÁîÈ˾ªÌ¾µÄ·¢ÏÖ£¬²»µÃ²»¸Ð̾Äں˴úÂëÉè¼ÆµÃÖ®ÃÀ£¡µ¥ÊÇ×î³£ÓõÄÁ´±íÒ²Éè¼ÆµÃ²»µÃ²»ÁîÈËÅå·þ£¡
1.1.Á´±ílist_head
    include/linux/list.h
    ºÜ¾­µä£¬Á´±íÔÚÄÚºËÖкܳ£Óã¬ÀýÈç¹ÜÀí½ø³Ì£¬½ø³ÌµÄ¸÷¸ö״̬¶ÓÁж¼ÊÇʹÓÃÕâ¸öË«ÏòÁ´±íʵÏֵġ£ÄÚºËÖеÄÁ´±í¶¨Òå³ÉºÍÊý¾ÝÎ޹صÄÐÎʽ£¬¶ø²»ÊÇͨ³£ÎÒÃÇʹÓõÄÁ´±í¸ñʽ£¬ÀýÈç
typedef struct _list{
    Elemtype elem;
    struct _list *next;
}list;
ÄÚºËÖеÄÁ´±í¶¨ÒåΪ
struct list_head{
    struct list_head *next, *prev;
};
¿É¼û£¬Õâ¸öÁ´±í½ÚµãÖв»°üº¬ÈκÎÊý¾Ý£¬Ö»ÓÐÁ½¸öÖ¸Õë¡£µ±ÐèҪʹÓÃÁ´±íÀ´×éÖ¯Êý¾Ý½á¹¹Ê±£¬Õâ¸ö½á¹¹ÖоͰüº¬Ò»¸ölist_head³ÉÔ±£¬ÀýÈç
struct _list_struct{
    Elemtype elem;
    struct list_head list;
    ...
};
ÏÔ¶øÒ×¼û£¬Á´±íʵÏֳɺÍÊý¾Ý·ÖÀëµÄºÃ´¦ÊÇ£¬²»ÓÃΪÿÖÖÊý¾Ý¶¼¶¨ÒåÁ´±í²Ù×÷£¬¿ÉÒÔʹÓÃͳһµÄÁ´±í²Ù×÷¼´¿É¡£µ«ÊÇÎÊÌâÊÇ£ºÖ»ÖªµÀÊý¾Ý³ÉÔ±listµÄµØÖ·£¬ÔõÑùÈ¥·ÃÎÊ×ÔÉíÒÔ¼°ÆäËû³ÉÔ±ÄØ£¿
#define list_entry(ptr,type,member)    \
    container_of(ptr,type,member)
¶øcontainer_of(ptr,type,member)ºê¶¨ÒåÔÚinclude/list/kernel.hÖÐ
#define container_of(ptr,type,member)    ({
    const typeof( ((type *)0)->member) *__ptr=ptr;
    (type *)( (char *)__ptr - offsetof(type,member));})
    ÉÏÃæµÄºêÓм¸µãÐèÒª½âÊÍ£º
1£©typeof(type) ºê
    typeof(type) ºê·µ»Ø±äÁ¿typeµÄÀàÐÍ£¬ÀýÈ磺int a; typeof(a) b;µÈ¼ÛÓÚint b;
2£©offsetof(type,member)ºê
    Ëü¶¨ÒåÔÚinclude/linx/stddef.hÖУ¬ÈçÏ£º
#define offsetof(TYPE, MEMBER)  ((size_t) &((TYPE *)0)->MEMBER)
Õâ¸öºê·µ»ØmemberÔÚtypeÀàÐÍÖÐµÄÆ«ÒÆÁ¿£¬typeÊÇÒ»¸ö½á¹¹£¬ÀýÈ磺
typeof(list_head,next);·µ»Ø0£¬Ò²¾ÍÊÇ·µ»ØÏà¶ÔÓڽṹÆðʼµØÖ·µÄÆ«ÒÆÁ¿¡£
3£©ÎªÊ²Ã´ÒªÊ¹ÓÃtypeof(((type *)0)->member)À´¶¨ÒåÖ¸Õë __ptr£¬¶ø²»ÊÇÕâÑù£º
const typeof(member) *__ptr=ptr;£¿
    Æäʵ£¬Õâ¸öºÜ¼ò


Ïà¹ØÎĵµ£º

Linux Óû§£¨user£©ºÍÓû§×飨group£©¹ÜÀí¸ÅÊö

Ò»¡¢Àí½âLinuxµÄµ¥Óû§¶àÈÎÎñ£¬¶àÓû§¶àÈÎÎñ¸ÅÄ
Linux ÊÇÒ»¸ö¶àÓû§¡¢¶àÈÎÎñµÄ²Ù×÷ϵͳ£»ÎÒÃÇÓ¦¸ÃÁ˽ⵥÓû§¶àÈÎÎñºÍ¶àÓû§¶àÈÎÎñµÄ¸ÅÄ
1¡¢Linux µÄµ¥Óû§¶àÈÎÎñ£»
µ¥Óû§¶àÈÎÎñ£»±ÈÈçÎÒÃÇÒÔbeinan µÇ¼ϵͳ£¬½øÈëϵͳºó£¬ÎÒÒª´ò¿ªgedit À´Ð´Îĵµ£¬µ«ÔÚдÎĵµµÄ¹ý³ÌÖУ¬ÎҸоõÉÙµãÒôÀÖ£¬ËùÒÔÓÖ´ò¿ªxmms À´µãÒôÀÖ£» ......

ÈçºÎÐ¶ÔØlinuxϵÄhttpd

     µ±ÎÒÃÇÏëÐ¶ÔØhttpd µÄʱºò£¬Ê¹ÓÃrpm -qa httpd µÄʱºò£¬ÎÒÃÇ·¢ÏÖÓкܶàµÄÒÀÀµ°ü¡£ÎÒÃÇÄÍÐĵÄÏëÒ»¸öÒ»¸öµÄÐ¶ÔØµÄʱºò£¨Ê¹ÓÃrpm -e httpd-*£©£¬»¹»á½øÈëËÀÑ­»·¡£
½â¾öµÄ°ì·¨ÊÇ£ºÊ¹Óà rpm -e httpd-* --nodeps˵Ã÷£º¡°*¡±ÊÇͨÅä·û¡£
 
°²×°CentOS5.3µÄʱºò»áĬÈϰ²×°httpd·þÎñ¡£
Ê×ÏȲ鿴 ......

Linux ÉÏʵÏÖË«Ïò½ø³Ì¼äͨÐŹܵÀ(ת)

ÎÊÌâºÍ³£¼û·½·¨
Linux ÌṩÁË popen ºÍ pclose º¯Êý (1)£¬ÓÃÓÚ´´½¨ºÍ¹Ø±Õ¹ÜµÀÓëÁíÍâÒ»¸ö½ø³Ì½øÐÐͨÐÅ¡£Æä½Ó¿ÚÈçÏ£º
FILE *popen(const char *command£¬ const char *mode);
int pclose(FILE *stream);
Òź¶µÄÊÇ£¬popen ´´½¨µÄ¹ÜµÀÖ»ÄÜÊǵ¥ÏòµÄ -- mode Ö»ÄÜÊÇ "r" »ò "w" ¶ø²»ÄÜÊÇijÖÖ×éºÏ--Óû§Ö»ÄÜÑ¡ÔñҪôÍùÀïд£¬ ......

¹ØÓÚLinux£¨1£©


Õë¶ÔºÃ¶àLinux °®ºÃÕß¶ÔÄں˺ÜÓÐÐËȤȴÎÞ´ÓÏ¿ڣ¬±¾ÎÄÖ¼ÔÚ½éÉÜÒ»ÖÖ½â¶ÁlinuxÄÚºËÔ´ÂëµÄÈëÃÅ·½·¨£¬¶ø²»Êǽâ˵linux¸´ÔÓµÄÄں˻úÖÆ£» £¨²Î¿¼×ÊÁÏÀ´Ô´£º·ÉÁè http://www.witech.com.cn/£©
Ò»£®ºËÐÄÔ´³ÌÐòµÄÎļþ×éÖ¯£º
1£®LinuxºËÐÄÔ´³ÌÐòͨ³£¶¼°²×°ÔÚ/usr/src/linuxÏ£¬¶øÇÒËüÓÐÒ»¸ö·Ç³£¼òµ¥µÄ±àºÅÔ¼¶¨£ºÈκÎżÊýµÄºËÐÄ£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ