第六讲 信号, 终端和控制台图形
整体思路
本次讲座前半部分是第五讲的延续, 将继续就 UNIX/Linux 上的信号, 终端及控制台图形等编程技术进行讲解.
讲座以概念解释为主, 重点讲述陌生的系统调用或函数以及 Linux 特有的一些编程技术.
主要内容
各部分要点
6.1 信号
- 概念
- 沿革
- 可重入性, 中断系统调用
- Linux 中的信号
- Linux 的信号实现
6.2 不可靠信号
6.3 可靠信号
- 术语和原语
- 信号集及其操作
- 可靠信号系统调用
- sigsetjmp 和 siglongjmp
- 作业控制信号
6.4 与信号相关的函数
- kill 和 raise
- alarm 和 pause
- abort, system 和 sleep
6.5 线程中的信号处理
- 概念
- pthread_sigmask
- pthread_kill 和 pthread_sigwait
6.6 终端编程
- 基本终端 I/O
- ncurses 库
- newt 库
6.7 伪终端
6.8 控制台上的图形编程简介
- SVGALib
- FrameBuffer
- GGI
- MiniGUI 和 Microwindows
思考题及作业
- 为第五讲的第五题和第六题增加信号处理, 并为第五题的 Shell 添加作业控制能力.
- 分析 CCE 或者 VCOnGUI 的伪终端实现.
- 为 CCE 或者 VCOnGUI 的添加终端缓冲区, 从而可以像 Linux 控制台一样, 利用 Shift+PgDn 和 Shift+PgUp 键显示滚过终端的内容.
参考书目
- W. Richard Stevens, Advanced Programming in the UNIX Environment
- John Goerzen, The Linux Programming Bible
- Uresh Vahalia, UNIX Internals - The New Frontiers
- 魏永明等, 《Linux 实用教程》
进一步读物
- W. Richard Stevens, Advanced Programming in the UNIX Environment, From Chpater 3 to Chapter 15.
反馈
本讲由魏永明讲解。欢迎任何意见和建议,可发 email: ymwei@263.net 与魏永明联系。
AKA 自由软件系列讲座