[ת]Ïê½âLinux 2.6ÄÚºËÐÂÎļþϵͳ±ä»¯»úÖÆ£¨inotify£©
ÔÎĵØÖ·£ºhttp://soft.yesky.com/os/lin/326/2237826.shtml
±¾ÎÄÏêϸµØ½éÉÜÁËÔÚ Linux 2.6.13 ÄÚºËÖÐÐÂÒýÈëµÄÎļþϵͳ±ä»¯Í¨Öª»úÖÆ inotify£¬²¢¾ÙÀý˵Ã÷ÁËËüµÄʹÓÃÓëµäÐÍÓ¦Óð¸Àý¡£
Ò»¡¢ÒýÑÔ
ÖÚËùÖÜÖª£¬Linux ×ÀÃæϵͳÓë MAC »ò Windows Ïà±ÈÓÐÐí¶à²»ÈçÈËÒâµÄµØ·½£¬ÎªÁ˸ÄÉÆÕâÖÖ×´¿ö£¬¿ªÔ´ÉçÇøÌá³öÓû§Ì¬ÐèÒªÄÚºËÌṩһЩ»úÖÆ£¬ÒÔ±ãÓû§Ì¬Äܹ»¼°Ê±µØµÃÖªÄں˻òµ×²ãÓ²¼þÉ豸·¢ÉúÁËʲô£¬´Ó¶øÄܹ»¸üºÃµØ¹ÜÀíÉ豸£¬¸øÓû§Ìṩ¸üºÃµÄ·þÎñ£¬Èç hotplug¡¢udev ºÍ inotify ¾ÍÊÇÕâÖÖÐèÇó´ßÉúµÄ¡£Hotplug ÊÇÒ»ÖÖÄÚºËÏòÓû§Ì¬Ó¦ÓÃͨ±¨¹ØÓÚÈȲå°ÎÉ豸һЩʼþ·¢ÉúµÄ»úÖÆ£¬×ÀÃæϵͳÄܹ»ÀûÓÃËü¶ÔÉ豸½øÐÐÓÐЧµÄ¹ÜÀí£¬udev ¶¯Ì¬µØά»¤ /dev ϵÄÉ豸Îļþ£¬inotify ÊÇÒ»ÖÖÎļþϵͳµÄ±ä»¯Í¨Öª»úÖÆ£¬ÈçÎļþÔö¼Ó¡¢É¾³ýµÈʼþ¿ÉÒÔÁ¢¿ÌÈÃÓû§Ì¬µÃÖª£¬¸Ã»úÖÆÊÇÖøÃûµÄ×ÀÃæËÑË÷ÒýÇæÏîÄ¿ beagle ÒýÈëµÄ£¬²¢ÔÚ Gamin µÈÏîÄ¿Öб»Ó¦Óá£
ÊÂʵÉÏ£¬ÔÚ inotify ֮ǰÒѾ´æÔÚÒ»ÖÖÀàËƵĻúÖƽРdnotify£¬µ«ÊÇËü´æÔÚÐí¶àȱÏÝ£º
1£®¶ÔÓÚÏë¼àÊÓµÄÿһ¸öĿ¼£¬Óû§¶¼ÐèÒª´ò¿ªÒ»¸öÎļþÃèÊö·û£¬Òò´ËÈç¹ûÐèÒª¼àÊÓµÄĿ¼½Ï¶à£¬½«µ¼Ö´ò¿ªÐí¶àÎļþ¡¢Êö·û£¬ÌرðÊÇ£¬Èç¹û±»¼àÊÓĿ¼ÔÚÒƶ¯½éÖÊÉÏ£¨Èç¹âÅÌºÍ USB ÅÌ£©£¬½«µ¼ÖÂÎÞ·¨ umount ÕâЩÎļþϵͳ£¬ÒòΪʹÓà dnotify µÄÓ¦Óôò¿ªµÄÎļþÃèÊö·ûÔÚʹÓøÃÎļþϵͳ¡£
2£®dnotify ÊÇ»ùÓÚĿ¼µÄ£¬ËüÖ»Äܵõ½Ä¿Â¼±ä»¯Ê¼þ£¬µ±È»ÔÚĿ¼ÄÚµÄÎļþµÄ±ä»¯»áÓ°Ïìµ½ÆäËùÔÚĿ¼´Ó¶øÒý·¢Ä¿Â¼±ä»¯Ê¼þ£¬µ«ÊÇÒªÏëͨ¹ýĿ¼Ê¼þÀ´µÃÖªÄĸöÎļþ±ä»¯£¬ÐèÒª»º´æÐí¶à stat ½á¹¹µÄÊý¾Ý¡£
3£®Dnotify µÄ½Ó¿Ú·Ç³£²»ÓѺã¬ËüʹÓà signal¡£
Inotify ÊÇΪÌæ´ú dnotify ¶øÉè¼ÆµÄ£¬Ëü¿Ë·þÁË dnotify µÄȱÏÝ£¬ÌṩÁ˸üºÃÓõģ¬¼ò½à¶øÇ¿´óµÄÎļþ±ä»¯Í¨Öª»úÖÆ£º
1£®Inotify ²»ÐèÒª¶Ô±»¼àÊÓµÄÄ¿±ê´ò¿ªÎļþÃèÊö·û£¬¶øÇÒÈç¹û±»¼àÊÓÄ¿±êÔÚ¿ÉÒƶ¯½éÖÊÉÏ£¬ÄÇôÔÚ umount ¸Ã½éÖÊÉϵÄÎļþϵͳºó£¬±»¼àÊÓÄ¿±ê¶ÔÓ¦µÄ watch ½«±»×Ô¶¯É¾³ý£¬²¢ÇÒ»á²úÉúÒ»¸ö umount ʼþ¡£
2£®Inotify ¼È¿ÉÒÔ¼àÊÓÎļþ£¬Ò²¿ÉÒÔ¼àÊÓĿ¼¡£
3£®Inotify ʹÓÃϵͳµ÷Óöø·Ç SIGIO À´Í¨ÖªÎļþϵͳʼþ¡£
4£®Inotify ʹÓÃÎļþÃèÊö·û×÷Ϊ½Ó¿Ú£¬Òò¶ø¿ÉÒÔʹÓÃͨ³£µÄÎļþ I/O ²Ù×÷select ºÍ poll À´¼àÊÓÎļþϵͳµÄ±ä»¯¡£
Inotify ¿ÉÒÔ¼àÊÓµÄÎļþϵͳʼþ°üÀ¨£º
Ïà¹ØÎĵµ£º
½ñÌìÔÚÐéÄâ»úÏÂÓÖÖØ×°ÁËlinux£¬ÏÂÃæÊÇ´ÓÍøÉÏËѵ½µÄlinuxÐéÄâ»úµÄÍøÂçÅäÖãº
1¡¢ Äã×°ºÃÐéÄâ»úºó,Äã»á·¢ÏÖ¶à³öÀ´Á½¸öÍø¿¨ ,Ò»¸ö1,Ò»¸ö8,
2¡¢ ¹²Ïí¶ÔÍâµÄÍø¿¨£º“±¾µØÁ¬½Ó—ÊôÐÔ—¸ß¼¶” Ñ¡ÖÐ
ÔÊÐíÆäËûÍøÂçÓû§Í¨¹ý´Ë¼ÆËã»úµÄInternetÁ¬½ÓÀ´Á¬½Ó
£¨Õâʱ“ÔÊÐíÆäËûÍ ......
1¡¢Ìí¼Ó´®¿Ú: ÔÚLinuxÆô¶¯Ö®Ç°£¬ÐéÄâ»ú--¡·ÉèÖÃ--¡·Ìí¼Ó--¡·´®¿Ú--¡·±£´æ--¡·Æô¶¯Linux¡£
2¡¢#minicom £¬³öÏÖÆô¶¯½çÃ棬CTRL-A Z ½øÈë°ïÖú½çÃæ
3¡¢¼üÈëO £¬ÅäÖô®¿Ú£¬Ñ¡ÔñµÚÈýÏî“Serial port setup”µã»÷»Ø³µ
4¡¢Í¨¹ý·Ö±ð¼üÈëA¡¢E¡¢F£¬ÅäÖ㬵ã»÷»Ø³µ£¨FÑ ......
ʹÓÃÏÂÁкé¿ÉÒÔͨ¹ýÖ÷É豸ºÅºÍ´ÎÉ豸ºÅÉú³Édev_t
MKDEV(int major, int mainor)
Èç¹û¸´ÖƵÄÄÚ´æÊǼòµ¥ÀàÐÍ£¬Èçchar¡¢int¡¢longµÈ£¬Ôò¿ÉÒÔʹÓüòµ¥µÄput_user()ºÍget_user()
Linuxϵͳ½¨ÒéÒÔÈçͼ·½Ê½¶¨ÒåioctlÃüÁîÂë
ÃüÁËÂëµÄÉ豸ÀàÐÍ×Ö¶ÎΪһ¸ö“»ÃÊý”£¬¿ÉÒÔÊÇ0-0xffÖ®¼äµÄÖµ£¬ÄÚºËÖеÄioctl-number ......
1.´´½¨Ä¿Â¼
mkdir [-p][--help][--version][-m <Ŀ¼ÊôÐÔ>][Ŀ¼Ãû³Æ]
-m¿ÉÒÔ¶ÔĿ¼ÉèÖôæȡȨÏÞ,Ò²¿ÉÒÔÓÃchmodeÃüÁîÉèÖÃ,
-p ¿ÉÒÔÊÇÒ»¸ö·¾¶Ãû³Æ,Èç¹û·¾¶ÖÐÓÐЩĿ¼²»´æÔÚ,ÄÇô»á×Ô¶¯´´½¨
2.ɾ³ý¿ÕĿ¼
Óï¡¡¡¡·¨£ºrmdir [-p][--hel ......
[root@localhost root]# ls -l
»áÏÔʾĿ¼»òÎļþÐÅÏ¢£ºdrwxr-xr-x 2 root root 4096 06-29 14:30 Test
-rwxr--r-- 2 root roo ......