C语言实现shell框架
2016-01-20 04:02
573 查看
方法:使用结构体回调函数的方式实现shell(引导程序框架)
实现代码:
#include <stdio.h>
typedef void (*back_way)(void);//函数类型
void A(void){printf("AAA\n");}//函数指针A
void B(void){printf("BBB\n");}//函数指针B
typedef struct func_
{
const char name;//命令名
back_way func;//命令函数指针
}func_t;
const func_t func_sel[]= //匹配数组
{
{'A',A},{'a',A},
{'B',B},{'b',B},
{0,0},
};
const func_t* func_find(const char name)//匹配函数
{
int i = sizeof(func_sel)/sizeof(func_sel[0]);
int j = 0;
for(; j < i; j++)
if(func_sel[j].name == name)
return &func_sel[j];//找到就返回
return (const func_t*)0;//找不到返回0
}
int main()
{
char name = 'a';
const func_t *p = func_find(name);//匹配函数
if(p)p->func();//调用函数显示结果
return 0;
}
附件为linux下可执行程序.
实现代码:
#include <stdio.h>
typedef void (*back_way)(void);//函数类型
void A(void){printf("AAA\n");}//函数指针A
void B(void){printf("BBB\n");}//函数指针B
typedef struct func_
{
const char name;//命令名
back_way func;//命令函数指针
}func_t;
const func_t func_sel[]= //匹配数组
{
{'A',A},{'a',A},
{'B',B},{'b',B},
{0,0},
};
const func_t* func_find(const char name)//匹配函数
{
int i = sizeof(func_sel)/sizeof(func_sel[0]);
int j = 0;
for(; j < i; j++)
if(func_sel[j].name == name)
return &func_sel[j];//找到就返回
return (const func_t*)0;//找不到返回0
}
int main()
{
char name = 'a';
const func_t *p = func_find(name);//匹配函数
if(p)p->func();//调用函数显示结果
return 0;
}
附件为linux下可执行程序.
相关文章推荐
- shell脚本标准输出赋值给变量
- shell判断字符串为空
- shell循环
- shell括号
- 【Shell】sed
- shell死循环
- shell按行读取文件
- hadoop FS Shell
- shell命令使用HDFS的一些其他命令
- 脚本(一键)安装zabbix
- shell处理
- 第三章 shell编程之运算符
- shell基础
- 初识shell
- linux shell 的here document 用法 (cat << EOF)
- ShellExecute使用详解
- AWK调用SHELL,并将变量传递给SHELL
- 编写shell时,let: not found
- shell命令执行hive脚本(hive交互,hive的shell编程)
- shell命令执行hive脚本(hive交互,hive的shell编程)