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

Enable/Disable Linux mousekeys

 
gcc mousekey.c -lX11 -IX11
´ò¿ªmousekeysÔËÐÐ./a.out
¹Ø±ÕmousekeysÔËÐÐ./a.out 1,ÕâÀïÔÚa.outºóÃæËæ±ã¼ÓÒ»¸ö²ÎÊý¾Í¿ÉÒÔÁË£¬ÒòΪÅжÏÌõ¼þΪ if(argc < 2)
/*********source code***************/
#include <stdio.h>
#include <string.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
int main(int argc, char *argv[])
{
 Display *display;
 unsigned long which;
 XkbDescPtr xkb;
 unsigned int status_mask = 0;
 unsigned short mk_delay = 160;
 unsigned short mk_interval = 50;
 unsigned short mk_time_to_max = 30;
 unsigned short mk_max_speed = 50;
 short mk_curve = 0;
 Status S;
 status_mask = XkbMouseKeysMask;
 display = XOpenDisplay(NULL);
 xkb = XkbGetMap(display, 0, XkbUseCoreKbd);
 if((int)xkb == BadAlloc || xkb == NULL)
 {
  printf("ERROR: unable to allocate storege.\n");
  return 1;
 }
 
 if((S = XkbGetControls(display, XkbAllControlsMask, xkb)) != Success)
 {
  if(S == BadAlloc)
   printf("ERROR: Unable to allocate storage.\n");
  else if(S == BadMatch)
   printf("ERROR: Unable to query state of keyboard.\n");
  else printf("ERROR: Unable to get state of keyboard controls. \n");
   return 2;
 }
 unsigned int changeEnabled = 0;
 unsigned int enabled = 0;
 changeEnabled |=status_mask;
 if(argc < 2)
  enabled |= status_mask;
 if(xkb->ctrls)
 {
  xkb->ctrls->enabled_ctrls &=~changeEnabled;
  xkb->ctrls->enabled_ctrls |=(changeEnabled & enabled);
  xkb->ctrls->mk_delay = mk_delay;
  xkb->ctrls->mk_interval = mk_interval;
  xkb->ctrls->mk_time_to_max = mk_time_to_max;
  xkb->ctrls->mk_max_speed = mk_max_speed;
 &nb


Ïà¹ØÎĵµ£º

[תÌû]LinuxÇý¶¯¿ª·¢Ñ§Ï°µÄһЩ±ØÒª²½Öè

 1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......

Linuxϳõ²½ÅäÖÃApache+Subversion

×°ºÃapacheºÍsubversionºó½ÓÏÂÀ´ÅäÖÃÅäÖÃÎļþ,ÏÈÓÃÃüÁîsvnadmin svnadmin create /home/repository/svn1 svnadmin create /home/repository/svn2 ÔÚ/home/repository/Ŀ¼ÀïÃæ´´½¨ÁË2¸ö²Ö¿âsvn1ºÍsvn2 ÐÞ¸Ähttp.conf¼ÓÉϹØÓÚsvnµÄÅäÖÃÑ¡Ïî LoadModule dav_svn_module modules/mod_dav_svn.so
LoadM ......

linuxÐÞ¸Ä×Ö·û¼¯

 ¿ÉÒÔͨ¹ýÏÂÃæÃüÁî²é¿´µ±Ç°±àÂ뷽ʽ£º  
  h@debian-server:~/$   locale   -a  
  C  
  en_US  
  en_US.iso88591  
  en_US.iso885915  
  en_US.utf8  
  POSIX  
  zh_CN  
  zh_CN.gb1 ......

LinuxϵÄMakefile±Ê¼Ç

 À´Ô´linux-2.6.20.21/Documentation/kbuild/makefiles.txt
*  obj-y
+= foo.o ±íʾ±àbuild-in£¬obj-m += foo.o±íʾ±à³Émodule.
* kbuild
»á±àÒëËùÓеÄ$(obj-y)Îļþ£¬È»ºóµ÷ÓÃ$(LD) -r°ÑÕâЩÎļþºÏ²¢µ½Ò»¸öbuilt-in.oÎļþÖС£Õâ¸öbuilt-in.oÉÔºó»á±»¸¸¼¶Makefile linkµ½vmlinux
* ÓÃlib-y
:= checksum.o ......

linuxÄÚºË(2.6)ÖеÄ˫ѭ»·Á´±ídzÎö

       Linux 2.6ÄÚºËÁ´±íÊý¾Ý½á¹¹µÄʵÏÖ
ÔÚ¼ÆËã»ú¿ÆÑ§ÖУ¬Á´±íÊǷdz£Í¨ÓõÄÊý¾Ý½á¹¹£¬¹á´©ÓÚÕû¸ölinuxµÄÄںˡ£ÔÚlinuxÄÚºËÖУ¬Á´±íͨ³£ÒÔ
˫ѭ»·Á´±íµÄ·½Ê½³öÏÖ¡£ËùÓÐÁ´±íµÄ´úÂëÔÚinclude/linux/list.hÎļþÖС£
¶¨ÒåÈçÏ£º
struct list_head {
struct list_head *next, *prev;
}; ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ