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

LinuxÄÇЩʶùÖ®ÎÒÊÇSysfs(8)Ò»Æðɢɢ²½ pathwalk

Ç°Ãæ˵¹ý£¬Ö»ÒªÖªµÀÎļþµÄË÷Òý½ÚµãºÅ£¬¾Í¿ÉÒԵõ½ÄǸöÎļþ¡£µ«ÊÇÎÒÃÇÔÚ²Ù×÷Îļþʱ£¬´ÓûÌý˵˭»áÄÃ×ÅË÷Òý½ÚµãºÅÀ´²Ù×÷Îļþ£¬ÎÒÃÇÖ»ÖªµÀÎļþÃû¶øÒÑ¡£ ËüÃÇÊÇÈçºÎ"ºÍг"ÆðÀ´µÄÄØ£¿linux°ÑĿ¼Ҳ¿´³ÉÒ»ÖÖÎļþ£¬ÀïÃæ¼Ç¼×ÅÎļþÃûÓëË÷Òý½ÚµãºÅµÄ¶ÔÓ¦¹Øϵ£¨Ä¿Â¼´æÔÚµÄÔ­Òò£©¡£±ÈÈçÔÚext3ÎļþϵͳÖУ¬Èç¹ûÎļþÊÇÒ»¸öÄ¿ Â¼£¬ÄÇôËüµÄÄÚÈݾÍÊÇһϵÁÐext3_dir_entry_2µÄ½á¹¹
struct ext3_dir_entry_2 {
__u32 inode; /* Inode number */
__u16 rec_len; /* Directory entry length */
__u8 name_len; /* Name length */
__u8 file_type;
char name[EXT3_NAME_LEN]; /* File name */
};
¾Ù ¸öÀý×Ó£¬±ÈÈçÒª´ò¿ª/home/test/hello.c¡£Ê×ÏÈ£¬ÕÒµ½‘/’£¬¶ÁÈëÆäÄÚÈÝ£¬ÕÒµ½ÃûΪ"home"µÄÎļþµÄË÷Òý½ÚµãºÅ£¬´ò¿ª/homeÕâ¸ö "Îļþ"£¬¶ÁÈëÄÚÈÝ£¬ÕÒµ½ÃûΪ "test" µÄµÄÎļþµÄË÷Òý½ÚµãºÅ£¬Í¬Àí£¬ÔÙ´ò¿ªÎļþ"/home/test"£¬ÕÒµ½ÕÒµ½ÃûΪ"hello.c”µÄÎļþµÄË÷Òý½ÚµãºÅ£¬×îºó¾ÍµÃµ½ /home/test/hello.cÁË¡£Õâ¾ÍÊÇpath_walk()º¯ÊýµÄÔ­Àí¡£
ÆäÖУ¬¸ù¾ÝÒ»¸öÎļþ¼ÐµÄinode£¬ºÍÒ»¸öÎļþÃûÀ´»ñÈ¡¸ÃÎļþµÄinode½á¹¹µÄº¯Êý£¬¾Í½Ðlookup£¬ËüÊÇinode_operationsÀïÃæµÄº¯Êý¡£
struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
lookup£¬ ¹ËÃû˼Ò壬¾ÍÊDzéÕÒ£¬±ÈÈç²é²éÔÚtestÕâ¸öÎļþ¼ÐÏ£¬ÓÐûÓнÐhello.cµÄÎļþ£¬ÓеĻ°£¬¾Í´Ó´æ´¢½éÖÊÖжÁÈ¡Æäinode½á¹¹¡£²¢ÓÃdentry- >d_inodeÖ¸ÏòËü¡£ËùÒÔ£¬ÎÒÃÇÖ»ÒªÖªµÀÁËÎļþµÄ·¾¶ºÍÃû×Ö£¬×Ü¿ÉÒÔ´Ó¸ùĿ¼¿ªÊ¼£¬Ò»²ãÒ»²ãµÄÍùÏÂ×ߣ¬¶¨Î»µ½Ä³Ò»¸öÎļþ¡£ 
superblockÓëvfsmount
½Ó ÏÂÀ´»¹Òª½éÉÜÁ½¸öÊý¾Ý½á¹¹£¬superblockºÍvfsmount¡£super_block½á¹¹ÊÇ´ÓËùÓоßÌåµÄÎļþϵͳËù³éÏó³öÀ´µÄÒ»¸ö½á¹¹£¬Ã¿Ò»¸öÎÄ ¼þϵͳʵÀý¶¼»áÓÐÒ»¶ÔÓ¦super_block½á¹¹¡£±ÈÈçÿһ¸öext2µÄ·ÖÇø¾ÍÓÐÒ»¸ösuper_block½á¹¹£¬Ëü¼Ç¼Á˸ÃÎļþϵͳʵÀý(·ÖÇø)µÄij Ð©ÃèÊöÐÔµÄÐÅÏ¢£¬±ÈÈç¸ÃÎļþϵͳʵÀýµÄÎļþϵͳÀàÐÍ£¬Óжà´ó£¬´ÅÅÌÉÏÿһ¿éµÄ´óС, »¹ÓоÍÊÇsuper_operations¡£ËüÓëinode£¬dentryÒ»Ñù£¬Ö»ÊÇijЩÄÚÈÝÔÚÄÚ´æÖеÄÓ³Ïñ¡£¾Íext2Îļþϵͳ¶øÑÔ£¬É豸Éϵij


Ïà¹ØÎĵµ£º

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ
 
 
¡¡¡¡¸ÅÊö
¡¡¡¡¾ÍC£«£«¿ª·¢¹¤¾ß¶øÑÔ£¬ÓëWindowsÏÂ΢Èí£¨VC£¬ VS2005µÈ£©Ò»Í³ÌìÏÂÏà±È£¬Linux/UnixÏÂC£«£«¿ª·¢£¬¿ÉνÎ廨°ËÃÅ£¬¸÷ʽ¸÷Ñù¡£Emacs, vi, eclipse, anjuta£¬kdevelopµÈ²ã³ö²»Çî¡£
¡¡¡¡WindowsÏ£¬¿ª·¢¹¤¾ß¶àÒÔ¼¯³É¿ª·¢»·¾³IDEµÄÐÎʽչÏÖ¸ø×îÖÕÓû§¡£ÀýÈ磬VS2005¼¯³ ......

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ
 
 
¡¡¡¡¸ÅÊö
¡¡¡¡¾ÍC£«£«¿ª·¢¹¤¾ß¶øÑÔ£¬ÓëWindowsÏÂ΢Èí£¨VC£¬ VS2005µÈ£©Ò»Í³ÌìÏÂÏà±È£¬Linux/UnixÏÂC£«£«¿ª·¢£¬¿ÉνÎ廨°ËÃÅ£¬¸÷ʽ¸÷Ñù¡£Emacs, vi, eclipse, anjuta£¬kdevelopµÈ²ã³ö²»Çî¡£
¡¡¡¡WindowsÏ£¬¿ª·¢¹¤¾ß¶àÒÔ¼¯³É¿ª·¢»·¾³IDEµÄÐÎʽչÏÖ¸ø×îÖÕÓû§¡£ÀýÈ磬VS2005¼¯³ ......

linux ¿ª»úÆô¶¯½Å±¾

linux ¿ª»úÆô¶¯½Å±¾Ë³Ðò¡£
 µÚÒ»²½£ºÆô¶¯ÄÚºË
 µÚ¶þ²½£ºÖ´ÐÐinit £¨ÅäÖÃÎļþ/etc/inittab£©
 µÚÈý²½£ºÆô¶¯ÏàÓ¦µÄ½Å±¾£¬²¢ÇÒ´ò¿ªÖÕ¶Ë/etc/init.d
 rc.sysinit rc.d(ÀïÃæµÄ½Å±¾£© rc.local
 µÚËIJ½£ºÆô¶¯loginµÇ¼½çÃæ login
 µÚÎå²½:ÔÚÓû§µÇ¼µÄʱºòÖ´ÐÐsh½Å±¾µÄ˳Ðò£ºÃ¿´ÎµÇ¼µÄʱºò¶ ......

C++&wxWidgets ¿çƽ̨´°¿Ú³ÌÐò¿ª·¢(¶þ,Linuxƪ)

ÎÒÓõÄLinuxϵͳÊÇUbuntu 10.04
Ê×ÏÈ, °²×°wxWidgets 2.8. Ä¿Ç°wxWidgetsÓÐÁ½¸öÎȶ¨°æ±¾, 2.6ºÍ2.8, ÎÒÃÇÑ¡×îеÄ. ´ò¿ª “Ubuntu
Èí¼þÖÐÐÄ”, ÔÚËÑË÷¿òÀïÊäÈë “wxWidgets”, °ÑÏÂÃ漸¸öÃû×ÖÒÔ”wxWidgets Cross-platform C++ GUI
toolkit”¿ªÍ·µÄÈ«²¿°²×°. ×°Íêºó, ´ò¿ªÒ»¸öÖÕ¶Ë, ÊäÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ