ǶÈëʽ linux Ï ͨÓà console£¨¿ØÖÆÌ¨£© µÄʵÏÖ
ǰÑÔ£º
µ±ÎÒÃÇʹÓÃǶÈëʽlinux ½øÐпª·¢Ê±£¬kernel ÅÜÆðÀ´Ö®ºó£¬ÎÒÃÇÏ£ÍûÄÜͨ¹ý´®¿Ú£¨±ê×¼ÊäÈë¡¢Êä³ö£©£¬ÔÚÓ¦ÓóÌÐòÕýÔÚÔËÐеĹý³ÌÖУ¬½øÐÐһЩµ÷ÊÔ¹¤×÷£¬ÀýÈ磬¶ÔCPUһЩ¼Ä´æ½øÐе÷Õû£¬ÒÔ¹Û²âµ÷ÕûÒÔºóµÄ½á¹û£¬²¢ÇÒ£¬µ±ÎÒÃÇÎÞ·¨°ÑÎÒÃǵÄÓ¦ÓóÌÐò·ÅÔÚºǫ́ÔËÐУ¬ÄÇôÎÒÃǾÍÐèҪʵÏÖÒ»¸ö»ù´¡µÄ¿ØÖÆÌ¨¡£
ÏÂÎÄÖеĿØÖÆÌ¨£¬ËäÈ»¼òµ¥£¬µ«Í걸µÄÖ§³Ö ÉÏ Ï ×ó ÓÒ backspace del ³£ÓÿØÖÆÌ¨²Ù×÷£¬Ê¹Óà ÉÏ Ï ¼ü¿ÉÒÔä¯ÀÀÒѾÊäÈë¹ýµÄÃüÁÀàËÆ doskey ÕâÑùµÄ¹¦ÄÜ£©£¬Ö§³Ö ¹â±ê ×óÓÒÒÆ¶¯ ÐÞ¸ÄÃüÁî
Ò»°ãÎÒÃÇÔÚ main º¯Êý×îºó ¶¼»á×ö while(TRUE) sleep(1000) ÕâÑù ×èÈûסÖ÷Ị̈߳¬ÓÃÕâ¸ö¿ØÖÆÌ¨µÄʵÏÖ£¬Ìæ»»Õâ¸ö¹ý³Ì£¬ÔòÓ¦ÓóÌÐò¿ÉÔö¼Ó¿ØÖÆÌ¨Ó¦Óù¦ÄÜ£¬¸÷²¿·ÖµÄ¾ßÌåʵÏÖÈçÏ£º
µ÷ÓôúÂë(main.c)£º
#include <stdio.h>
#include "app_console.h"
int main(int argc, char *argv[])
{
// ֮ǰµÄÓ¦ÓôúÂë
....
....
....
App_Console_Start();
return 0;
}
¿ØÖÆÌ¨Í·Îļþ(app_console.h)
#ifndef __APP_CONSOLE_H__
#define __APP_CONSOLE_H__
#ifdef __cplusplus
extern "C"
{
#endif
#include "type_def.h"
void App_Console_Start();
#ifdef __cplusplus
}
#endif
#endif
¿ØÖÆÌ¨CÎļþ(app_console.c)
#include "app_console.h"
#include "ctype.h"
#include "unistd.h"
#include "app_test.h"
// ˵Ã÷
// read write ʹÓõÄÊÇ POSIX µÄ±ê×¼Îļþ¶Áдº¯Êý
// unistd.h °üº¬ÁË STDIN_FILENO µÈÎļþÃèÊö·ûµÄ¶¨Òå
// ctype.h °üº¬ÁË isprint º¯ÊýµÄÉùÃ÷
// ¾¹ý×Ðϸ¿¼ÂÇ£¬¾ö¶¨²»Ö§³Ö ESC ¼ü£¬ÒòΪESC ¼üµÄ¼üֵΪ 0x1b Óë ÉÏÏÂ×óÓҵļüÖµÖØ¸´
// µ«¿ÉÒÔ¿¼Âǰ´2ÏÂESCÇå³ý±¾ÐÐÊäÈë
// ¶Ô²»¿É´òÓ¡×Ö·ûµÄ´¦Àí½öÏÞÓÚÒÔÏÂÒѾÁгöµÄºê¶¨Òå
// change:
// ·ÅÆú¶Ô double ESC µÄÖ§³Ö,ÒòΪ¿ÉÄܳöÏÖ°´ÁË ESC ÓÖ°´ÁË ·½Ïò¼ü µÄÇé¿ö
// ÔòÓû§ÊäÈë±àÂëΪ '\x1b' '\x1b' '[' 'A' (°´ÁËESC ÓÖ°´ÁËÉϼü)
// change:
// ΪÁ˽«Ó¦ÓÃÓë¿ØÖÆÌ¨Ó¦ÓðþÀ룬Ôò½« #define MAX_CMD_LEN 512 ·¿µ½ app_test.h Öж¨Òå
// ¶þάÊý×é×÷Ϊ²ÎÊý½øÐд«µÝʱ£¬ÐèÒªÃ÷È·µÚ¶þ¸öά¶ÈµÄ´óС£¬·ñÔò±àÒëÆ÷ÎÞ·¨ÕýÈ·¶¨Î»µØÖ·
#define KEY_BACKSPACE '\x08' // back space
#define KEY_DEL
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
ÔÎÄÁ´½Ó£ºhttp://www.trucy.org/blog/archives/eoiae/000087.html
GDBÊÇÒ»¸öÇ¿´óµÄÃüÁîÐе÷ÊÔ¹¤¾ß¡£´ó¼ÒÖªµÀÃüÁîÐеÄÇ¿´ó¾ÍÊÇÔÚÓÚ£¬Æä¿ÉÒÔÐγÉÖ´ÐÐÐòÁУ¬Ðγɽű¾¡£UNIXϵÄÈí¼þÈ«ÊÇÃüÁîÐеģ¬Õâ¸ø³ÌÐò¿ª·¢Ìá´ú¹©Á˼«´óµÄ±ãÀû£¬ÃüÁîÐÐÈí¼þµÄÓÅÊÆÔÚÓÚ£¬ËüÃÇ¿ÉÒԷdz£ÈÝÒ׵ÉÔÚÒ» ......
֮ǰÔÚVMWareÏÂ×°µÄlinuxϵͳµÄ¿ÉÓÃÓ²Å̿ռäÔ½À´Ô½ÉÙ£¬ÒѾÑÏÖØÓ°ÏìÕý³£µÄʹÓÃÁË£¬ÓÚÊǾ͸øËüÔÚVMWareϼÓÁË¿éÓ²ÅÌ£¬²½ÖèÈçÏ£º 1¡¢Í¨¹ýVMWare¸ølinuxϵͳÌí¼ÓÒ»¸öÐÂÓ²ÅÌ 2¡¢ÖØÆôlinuxϵͳ£¬¼üÈë fdisk –l ÃüÁî²é¿´ÐÂÔöÓ²Å̵ÄÅÌ·û£¨Í¨³£»áÓÐ ¡°doesn't contain a valid partion table¡±µÄÌáʾÐÅÏ¢£©£¬¼ÙÉèΪ /dev/s ......
¿ÉÒÔͨ¹ýÏÂÃæÃüÁî²é¿´µ±Ç°±àÂ뷽ʽ£º
h@debian-server:~/$ locale -a
C
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
POSIX
zh_CN
zh_CN.gb1 ......