当前位置:  技术问答>linux和unix

[Simple Shell] 检查成果,顺便发帖混个脸熟:)

    来源: 互联网  发布时间:2016-07-20

    本文导语:      工作需要,想要一个应用程序的shell 可以用来调试应用程序 (直接在shell 内输入函数的名字和参数就可以调用应用程序内的函数。)      于是写了一个简单的demo, 之所以叫demo 是因为, 本来可以通过n...

    工作需要,想要一个应用程序的shell 可以用来调试应用程序 (直接在shell 内输入函数的名字和参数就可以调用应用程序内的函数。) 

    于是写了一个简单的demo, 之所以叫demo 是因为, 本来可以通过nm 命令导出的符号表来生成shell 内函数的数组, 而不是手动注册各个函数, 但是本人能力有限, 没有完成, 所以只有自己手动注册相关的函数了(demo 里注册了两个函数 XandY(int x, int y) 和PrintHex(char *bufP)), OK 功能描述至此, 下面粘代码, 大侠看了不要笑话~, 有改动意见, 敬请拍砖 

shell.h

/*
**  Copyright (c) 2009 Michael .
**
**  Project: Simple shell
**  File:    shell.h
**  Author:  Michael
**  Date:    07/22/2009
**
**  Purpose:
**    Header file for shell.c.
*/


#ifndef SHELL_H
#define SHELL_H


#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */

/* Include files. */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


/* Macro constant definitions. */

#define FUNC_NAME_LENGTH_MAX 0x80
#define FUNC_DESC_LENGTH_MAX 0x100
#define FUNC_DB_ENTRY_MAX    0x80
#define ARGS_COUNTER_MAX     0x0A

#define INPUT_BUF_LENGTH     0x400
#define SHELL_PROMPT         "MichaeL ^-^ > "
#define SHELL_HELP_CMD_1     "help"
#define SHELL_HELP_CMD_2     "HELP"
#define SHELL_QUIT_CMD_1     "quit"
#define SHELL_QUIT_CMD_2     "QUIT"
#define SHELL_QUIT_CMD_3     "exit"
#define SHELL_QUIT_CMD_4     "EXIT"


/* Type definitions. */

typedef unsigned char uint8;      /* 8-bit unsigned value. */
typedef unsigned short uint16;    /* 16-bit unsigned value. */
typedef unsigned int uint32;      /* 32-bit unsigned value. */
typedef signed char sint8;        /* 8-bit signed value. */
typedef signed short sint16;      /* 16-bit signed value. */
typedef signed int sint32;        /* 32-bit signed value. */
typedef int (*funcPtr)();
typedef struct
{
    char name[FUNC_NAME_LENGTH_MAX];
    funcPtr value;
    char description[FUNC_DESC_LENGTH_MAX];
} tSymbolEntry;


/* External function declarations. */


/* Macro API definitions. */


/* Global variable declarations. */


#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */

#endif /* SHELL_H */




shell.c 见一楼~

|
其实有不少现成的库可以使用的,不需要重新自己去实现shell的功能。当然自己当研究技术例外。

|
呵呵。

|
没看明白!
可以调试程序?还是仅仅是一个简单的shell?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类jviewport的类成员方法: simple_scroll_mode定义及介绍
  • Simple Groupware
  • Simple ODF API
  • jQuery遮罩层插件 Simple Overlay
  • Simple Persistence for Java
  • Java的XML处理器 Simple
  • Simple CMS
  • Free Simple CMS
  • Free Simple Shop
  • Simple PHP Proxy
  • Simple Help Desk
  • CMS Made Simple
  • Tab选项卡 Updated Simple CSS Tabs
  • jquery-simple-datetimepicker
  • Simple jQuery Date-picker Plugin
  • jQuery Simple Dialog
  • 可拖放的树形控件 jQuery Simple Tree
  • c/c++开源软件 iis7站长之家
  • 电子表格软件 Simple Spreadsheet
  • Java2D游戏开发包 loon-simple
  • Simple C Expat Wrapper


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3