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信号,设置好信号处理时间以及信号处理函数,时间到了后就进入内核空间调用信号处理函数,将小鸟的主动下落和管道的左移放到信号处理函数中,由内核来调度。
此项目用到了数据结构中的链表