ÉîÈëÀí½â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ÊǽṹµÄ³É
Ïà¹ØÎĵµ£º
ÏÈ˵ÐèÇ󣬹«Ë¾ÓÐһ̨ÐͺÅΪHP LaserJet m1120 mfpµÄ´òÓ¡»ú£¬ÓÉÓÚ²»ÊÇÍøÂç´òÓ¡»úʹÓÃÆðÀ´Ê®·Ö²»±ã£¬¹«Ë¾ÀÏ´óÒªÇó½«Õą̂´òÓ¡»úÁ¬ÔÚ¹«Ë¾µÄÄÚÍølinux·þÎñÆ÷ÉÏ£¨CentOS£©£¬È»ºóÅäÖÃsamba¹²Ïí´òÓ¡»ú¡£ÏÂÃæ¿ª¹¤£¬Ö÷Òª·ÖÈý´ó²½Ö裬Èç·ûºÏÄãµÄÐèÇó£¬Çë¼ÌÐøÔĶÁ¡£
µÚÒ»²½£¬Òª±£Ö¤ÄãµÄ´òÓ¡»úÔÚlinu ......
/bin:binÊÇbinary(¶þ½øÖÆ)µÄËõд¡£Õâ¸öĿ¼ÊǶÔUNIXϵͳϰ¹ßµÄÑØÏ®£¬´æ·Å×ÅʹÓÃÕß×î¾³£Ê¹ÓõÄÃüÁî¡£ÀýÈ磺cp,ls,cat¡£
¡¡¡¡/boot:ÕâÀï´æ·ÅµÄÊÇÆô¶¯LINUXʱʹÓõÄһЩºËÐÄÎļþ¡£
¡¡¡¡/dev:devÊÇdevice(É豸)µÄËõд¡£Õâ¸öĿ¼ÏÂÊÇËùÓÐLINUXµÄÍⲿÉ豸£¬Æä¹¦ÄÜÀàËÆDOSϵÄ.sysºÍWinϵÄ.vxd¡£ÔÚLINUXÖÐÉ豸ºÍÎļþÊÇÓÃͬÖÖ ......
ÔÚRedhat 9.0³É¹¦°²×°ÁËffmpeg£¬ÏּǼÈçÏ¡£
¡¡¡¡1¡¢ÏÂÔØffmpeg¡£
¡¡¡¡http://download.chinaunix.net/do ... 532&ResourceID=2990
¡¡¡¡ÎÒÊÇÔÚÕâ¸öÍøÖ·ÉÏÏÂÔØffmpeg-0.4.9-p20051120.tar.bz2,¿´ÍøÉÏÓÐÈËÓõÄÊÇsvnÏÂÔØ£¬µ«ÊÇÎҵĻú×ÓÖÐûÓÐsvn¿Í»§¶Ë£¬È»ºó¾ÍÔÚÍøÉÏËÑË÷£¬ÏÂÔØÁËÕâ¸ö°æ±¾¡£Èç¹ûÀûÓÃsvn¿ÉÒÔÏÂÔØffmpeg× ......
Çì×£ Linux ³É¹¦ 10 Äê
Linux®¼¼Êõ¡¢¿ª·¢Ä£ÐͺÍÉçÇø¶¼¶Ô IT Òµ²úÉúÁËÖØÒªµÄÓ°Ï죬ÎÒÃÇÄÜ×öµÄ¾ÍÊÇÕ¾µ½Ò»±ß¿´¿´ÕâЩ£¬ºÜ¸ßÐËÓë
developerWorks Ò»Æð¶È¹ýÁ˵ÚÒ»¸ö 10 Äê¡£Linux ÍŶÓÒѾ½«ÕâЩ¶Ô Linux ²úÉúÖØ´óÓ°ÏìµÄÄÚÈÝÕûÀíµ½Ò»Æð¡£
¹ýÈ¥ 10 ÄêÀLinux ·¢ÉúÁËÌ«¶àµÄÊÂÇ飬ºÜÄÑÍêÕûµØÁгö¸Ã²Ù×÷ϵͳµ ......
sftp ÊÇÒ»¸ö½»»¥Ê½Îļþ´«Êä³Ìʽ¡£ËüÀàËÆÓÚ ftp, µ«Ëü½øÐмÓÃÜ´«Ê䣬±ÈFTPÓиü¸ßµÄ°²È«ÐÔ¡£Ï±߾ͼòµ¥½éÉÜÒ»ÏÂÈçºÎÔ¶³ÌÁ¬½ÓÖ÷»ú£¬½øÐÐÎļþµÄÉÏ´«ºÍÏÂÔØ£¬ÒÔ¼°Ò»Ð©Ïà¹Ø²Ù×÷¡£
ÔÚubuntuϵݲװapt-get install sftp ,µ±È»µÃÈ·±£ÄúÓÐ×ã¹»µÄȨÏÞ°²×°¸Ã³ÌÐò
linuxÏÂÈçºÎʹÓÃsftpÃüÁî¡£
¾ÙÀý£¬ÈçÔ¶³ÌÖ÷»úµÄ IP ÊÇ 202.206.64. ......