Ncurses库:
提供了创建窗口界面,移动光标,产生颜色,处理键盘按键功能问题等功能。
vim界面,内核配置界面(make menuconfig)
#include<stdio.h>
#include<curses.h>
int main(int argc, const char *argv[])
{
char ch;
initscr();//进入curses模式
curs_set(0);//设置为光标不显示模式
noecho();//不打印输入的字符
keypad(stdscr,1);//启动功能键F1-F*
start_color();//启动颜色配置功能
init_pair(1,COLOR_WHITE,COLOR_RED); //设置第一个颜色对,字体颜色为白色,背景为红色
init_pair(2,COLOR_GREEN,COLOR_WHITE);//设置第二个颜色对,字体颜色为绿色,背景为白色
ch = getch();
if(ch == 'a'){//如果输入的字符为a,则启用第一个颜色对,移动光标到10,10.添加字符 ‘J',然后关闭第一个颜色对
attron(COLOR_PAIR(1));
move(10,10);
addch('J');
refresh();//将添加的字符刷新到curses界面上
attroff(COLOR_PAIR(1));
}
move(10,10);//将光标移动至10,10,如果显示的数值为J,则启用第二个颜色对,移动光标到25,10,添加字符K,然后关闭第二个颜色对
ch = (char)inch();
if(ch == 'J'){
attron(COLOR_PAIR(2));
move(25,10);
addch('K');
refresh();
attroff(COLOR_PAIR(2));
}
while(1);
endwin();//退出curses模式
return 0;
}
信号机制
信号(signal)
在Linux中,软中断信号(简称信号)是在软件层次上对中断的一种模拟,用来通知进程发生了异步事件。内核可以因为内部事件而给进程发送信号,通知进程来了某个事件
信号相应的方式:
1.忽略信号
2.捕捉信号,即信号发生时执行用户自定义的程序处理
3.执行缺省操纵,Linux对每种信号都规定了默认的相应的处理
对于项目来说:
采用14)SUGALRM信号,设置好信号处理时间以及信号处理函数,时间到了后就进入内核空间调用信号处理函数,将小鸟的主动下落和管道的左移放到信号处理函数中,由内核来调度。
此项目用到了数据结构中的链表