Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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;£¿
    Æäʵ£¬Õâ¸öºÜ¼òµ¥£¬ÒòΪmemberÊǽṹµÄ³É


Ïà¹ØÎĵµ£º

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

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

linuxÏ¿âµÄʹÓÃ

¡¶¾«Í¨unixÏÂcÓïÑÔ-±à³ÌÓëÏîĿʵ¼ù¡·Ñ§Ï°±Ê¼Ç
1.¿âµÄ·ÖÀà
   ¿â¿É·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
      a.¾²Ì¬¿â
      ¾²Ì¬¿âµÄ´úÂëÔÚ±àÒëʱÁ´½Óµ½Ó¦ÓóÌÐòÖУ¬Òò´Ë±àÒëʱ¿âÎļþ±ØÐè´æÔÚ£¬±ØÐëҪͨ¹ý"-l"²ÎÊý´«µÝ¸ø±àÒëÆ÷¡£Ó¦ÓóÌÐò¿ªÊ¼Ö´ÐÐʱ£¬¿âº ......

[SEP4020]Linux¿ª·¢ÍƼö¹ÒÔØNFS×÷Ϊ¸ùÎļþϵͳ

×ªÔØ×Ô:http://hi.baidu.com/aokikyon/blog/item/86d1640fb3b7ca226059f390.html
ÒÔÇ°Â½Â½ÐøÐøÐ´¹ýºÜ¶à¹ÒÔØNFSÏà¹ØµÄÄÚÈÝ£¬ÏÖÔÚ°ÑËûÃÇÕûÀíһϣ¬¿´ÆðÀ´·½±ãЩ¡£
 
֮ǰʹÓÃcramfs»òyaffs×÷Ϊ¸ùÎļþϵͳ£¬¿ª·¢ÆðÀ´ºÜ²»·½±ã£¬ÐèÒªÐÞ¸ÄÒ»µãÎļþ¶¼ÒªÖØÐÂÉÕдnand£¬ÔÚ¿ª·¢Ê±ÍƼö¹ÒÔØÐéÄâ»úϵÄnfs·ÖÇø×÷Ϊ¸ùÎļþϵͳ¡£ ......

linuxÏÂsamba¹²Ïí´òÓ¡»ú


      ÏÈ˵ÐèÇ󣬹«Ë¾ÓÐһ̨ÐͺÅΪHP LaserJet m1120 mfpµÄ´òÓ¡»ú£¬ÓÉÓÚ²»ÊÇÍøÂç´òÓ¡»úʹÓÃÆðÀ´Ê®·Ö²»±ã£¬¹«Ë¾ÀÏ´óÒªÇó½«Õą̂´òÓ¡»úÁ¬ÔÚ¹«Ë¾µÄÄÚÍølinux·þÎñÆ÷ÉÏ£¨CentOS£©£¬È»ºóÅäÖÃsamba¹²Ïí´òÓ¡»ú¡£ÏÂÃæ¿ª¹¤£¬Ö÷Òª·ÖÈý´ó²½Ö裬Èç·ûºÏÄãµÄÐèÇó£¬Çë¼ÌÐøÔĶÁ¡£
µÚÒ»²½£¬Òª±£Ö¤ÄãµÄ´òÓ¡»úÔÚlinu ......

Linux Ŀ¼½âÊÍ

/bin:binÊÇbinary(¶þ½øÖÆ)µÄËõд¡£Õâ¸öĿ¼ÊǶÔUNIXϵͳϰ¹ßµÄÑØÏ®£¬´æ·Å×ÅʹÓÃÕß×î¾­³£Ê¹ÓõÄÃüÁî¡£ÀýÈ磺cp,ls,cat¡£
¡¡¡¡/boot:ÕâÀï´æ·ÅµÄÊÇÆô¶¯LINUXʱʹÓõÄһЩºËÐÄÎļþ¡£
¡¡¡¡/dev:devÊÇdevice(É豸)µÄËõд¡£Õâ¸öĿ¼ÏÂÊÇËùÓÐLINUXµÄÍⲿÉ豸£¬Æä¹¦ÄÜÀàËÆDOSϵÄ.sysºÍWinϵÄ.vxd¡£ÔÚLINUXÖÐÉ豸ºÍÎļþÊÇÓÃͬÖÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ