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

dzÎölinuxÏÂÊó±êÇý¶¯µÄʵÏÖ

¶ÔÓÚÊó±êÇý¶¯ºÍÇ°Ãæ·ÖÎö¹ýµÄ¼üÅÌÇý¶¯¶¼Êǹ²ÓÃinputÄ£ÐÍ,ËùÒÔ,¶ÔÓÚʼþÉϱ¨ºÍ´¦ÀíµÄ·½Ê½¶¼Ã»ÓÐÇø±ð,Ö»ÊÇmouseÊó±êÇý¶¯µ±Éϱ¨Íêdx,dy,left,middle,rightÖ®ºó,ÐèÒªµ÷ÓÃinput_sync(),½«Ç°ÃæÉϱ¨µÄ½ö½öÌî³äÔÚ»º³åÇøÖеÄÊý¾Ý,ͨ¹ýmousedev_notify_readers()·¢Ë͸øopenÁ˵ĹҽÓÔÚmousedev->client_listÁ´±íÉϵȴý»ñÈ¡Êó±êÐÅÏ¢µÄclientÃÅ,Êó±êÉ豸ºÍ¼üÅÌÉ豸ÀàËÆ¶¼ÊÇÔÚ/dev/input/Ŀ¼Ï´´½¨ÁËÒ»¸öcharÀàÐ͵ÄÉ豸½Úµã,ÓÉÓ¦ÓóÌÐòʹÓÃread»òÕßpollÀ´×èÈûµ÷ÓÃ,¶ÔÓÚ¼üÅÌÉ豸Ϊ/dev/input/event0,...,/dev/input/eventx,¶ÔÓÚÊó±êÉ豸Ϊ/dev/input/mouse0,...,/dev/input/mousex,¿ÉÒÔʹÓÃsudo cat /dev/input/event0À´´ÓÖÕ¶ËÉϽػñÏÔʾ°´¼üµÄÐÅÏ¢,ʹÓÃsudo cat /dev/input/mouse0À´²¶×½Êó±êµÄÐÅÏ¢.
  ÈÃÎÒÃÇÀ´¿´¿´Çý¶¯Ô´Â롾gliethttp.Leith¡¿£º
============drivers\input\mouse\amimouse.c============
    input_report_rel(amimouse_dev, REL_X, dx);
    input_report_rel(amimouse_dev, REL_Y, dy);
    input_report_key(amimouse_dev, BTN_LEFT, ciaa.pra & 0x40);
    input_report_key(amimouse_dev, BTN_MIDDLE, potgor & 0x0100);
    input_report_key(amimouse_dev, BTN_RIGHT, potgor & 0x0400);
    input_sync(amimouse_dev);// ¿½±´µ½openÁ˵Äÿ¸öclientµÄclient->packets[16]»·Ðλº³åÇø,ÿ¸öÓ¦ÓóÌÐòÔÚµ÷ÓÃopen ʱ,mousedev_open¶¼»áµ÷ÓÃkzallocÀ´ÉêÇëÒ»¸ö¶ÀÁ¢µÄmousedev_client½á¹¹Ìå,È»ºó½«¸Ãclient¹Ò½Óµ½ mousedev->client_listÁ´±í,×îºóÓÉmousedev_notify_readersÏò mousedev->client_listÁ´±íÉϹҽӵÄÿ¸öclient¿½±´Êó±êÐÅÏ¢,×îºówake_up»½ÐÑread»òpoll.
============drivers\input\mousedev.c============
mousedev_read=>mousedev_packet=>Èç¹ûdx,dy,dzͬʱ¶¼Îª0,˵Ã÷Êó±êÍ£Ö¹ÁË,ÄÇôclient->ready = 0;
mousedev_event(dev, EV_SYN, SYN_REPORT, 0)=>mousedev_notify_readers=>Èç¹ûdx,dy,dzÓÐÒ»¸ö·¢ÉúÁËÒÆ¶¯»òÕßÊó±ê°´¼üÉÏÒ»´ÎµÄ°´¼ü²»Í¬,ÄÇôclient->ready = 1;¿½±´Êý¾Ýµ½mousedev->client_listÁ´±íÉϹҽӵÄÿ¸öclientµÄ»·Ðλº³åÇø,×îºóµ÷ÓÃwake_up_interruptible(&mousedev->wait);»½ÐÑÒòΪread»òÕßpoll²Ù×÷¶ø±»pendingסµÄÓ¦Ó


Ïà¹ØÎĵµ£º

ÓÃLinuxÏÂPerl½Å±¾Á¬½ÓSQLServer

×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......

Linuxϵͳ¹ÜÀíʵ¼ù(2)£ºOpenSSHÔ¶³Ì¹ÜÀíÅäÖÃ

    OpenSSHÊÇSSH(Secure SHell)ЭÒéµÄÃâ·Ñ¿ªÔ´ÊµÏÖ¡£ËüÓð²È«¡¢¼ÓÃܵÄÍøÂçÁ¬½Ó¹¤¾ß´úÌæÁËtelnet¡¢ftp¡¢rlogin¡¢rshºÍrcp¹¤¾ß¡£OpenSSHÖ§³ÖSSHЭÒéµÄ°æ±¾1.3¡¢1.5ºÍ2¡£SSHЭÒé×å¿ÉÒÔÓÃÀ´½øÐÐÔ¶³Ì¿ØÖÆ£¬ »òÔÚ¼ÆËã»úÖ®¼ä´«ËÍÎļþ¡£¶øÊµÏִ˹¦ÄܵĴ«Í³·½Ê½£¬Èçtelnet(ÖÕ¶Ë·ÂÕæÐ­Òé), rcp(Ô¶³Ì¸´ÖÆÐ­Òé)¶¼ÊǼ«Îª ......

dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì

dzÎölinuxϼüÅÌÉ豸¹¤×÷ºÍ×¢²áÁ÷³Ì
¡¾Ç³ÎölinuxÏÂÊó±êÇý¶¯µÄʵÏÖ¡¿
 input_init()=>
=>
class_register(&input_class);×¢²áinputÀà
input_proc_init();´´½¨procϵÄĿ¼ºÍÎļþ
register_chrdev(INPUT_MAJOR, "input", &input_fops);×¢²áÇý¶¯³ÌÐòµ½cdev_mapÉÏ,ÒÔ´ýÇý¶¯É豸.
drivers\input\keybo ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ