Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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Ï php img ͼƬÎÞ·¨ÏÔʾ

 ½«php·þÎñÆ÷¼Üµ½linuxÏÂʱûÓÐ×¢Òâ¸ÃÎÊÌ⣬
ǰ¼¸Ììµ¹ÊÇÅöµ½ÁËÔÚlinuxÏÂÑéÖ¤ÂëµÄͼƬÎÞ·¨ÏÔʾµÄÇé¿ö£¬·¢ÏÖlinuxÏÂÒ²ÒªÓÐgd¿âµÄÖ§³Ö£¬ÓÚÊǰ²×°ÁËphp5-gd£¨±¾ÈËʹÓõÄÊÇphp5£©
£¬Õâ¸öÎÊÌâ½â¾öÁË
½ñÌìͻȻ·¢ÏÖimgͼƬÎÞ·¨ÏÔʾ£¬ÉÏÍøËÑÁËÒ»°Ñ£¬ÓÖ¾­¹ý²âÊԵóöÈçϽáÂÛ
<img src="pc.jpg"......>
Ëû»áÒÔµ±Ç°Â·¾¶ ......

Linux µÄÎļþϵͳ

Linux Ê×ÏÈ´´½¨ramfsÎļþϵͳ(/)
È»ºó°Ñinitrd.imgÎļþ¼ÓÔØµ½ / Ŀ¼Ï¡£
ÆäËüÎļþϵͳÊÇ×öΪramfsµÄÒ»¸öĿ¼½áµã¹ÒÔØÉÏÈ¥µÄ¡£
initrd.imgÊÇÒ»¸öÓÃzipѹËõµÄcpio¸ñʽµÄѹËõÎļþ¡£°´ÏÂÃæ²½ÖèʵÏÖ½âѹ
µÚÒ»²½£º½«initrd.img¸ÄÃûΪinitrd.img.gz
mv initrd.img initrd.img.gz
µÚ¶þ²½£ºÓÃgunzip½âѹÉú³Éinitrd.img
gunzi ......

С¼ÇVMWareϸølinuxÌí¼ÓÐÂÓ²ÅÌ£¨±¸Íü£©

֮ǰÔÚVMWareÏÂ×°µÄlinuxϵͳµÄ¿ÉÓÃÓ²Å̿ռäÔ½À´Ô½ÉÙ£¬ÒѾ­ÑÏÖØÓ°ÏìÕý³£µÄʹÓÃÁË£¬ÓÚÊǾ͸øËüÔÚVMWareϼÓÁË¿éÓ²ÅÌ£¬²½ÖèÈçÏ£º 1¡¢Í¨¹ýVMWare¸ølinuxϵͳÌí¼ÓÒ»¸öÐÂÓ²ÅÌ 2¡¢ÖØÆôlinuxϵͳ£¬¼üÈë fdisk –l ÃüÁî²é¿´ÐÂÔöÓ²Å̵ÄÅÌ·û£¨Í¨³£»áÓÐ ¡°doesn't contain a valid partion table¡±µÄÌáʾÐÅÏ¢£©£¬¼ÙÉèΪ /dev/s ......

ÉîÈëLinuxÄÚºËÍøÂç¶ÑÕ»

×÷Õߣºbioforge alkerr@yifan.net
Ô­Ãû£º <<Hacking the Linux Kernel Network Stack>>
·­Ò룬Ð޸ģº duanjigang <duanjigang1983@126.com>
·­Òë²Î¿¼£ºraodan (raod_at_30san.com) 2003-08-22
µÚÒ»Õ  ¼ò½é
±¾ÎĽ«ÃèÊöÈçºÎÀûÓÃLinuxÍøÂç¶ÑÕ»µÄÇÏÃÅ£¨²»Ò»¶¨¶¼ÊÇ©¶´£©À´´ïµ½Ò»Ð©Ä¿µÄ£¬»ò ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ