内容简介
第1章 Linux系统管理
1.1 登录与注销
1.1.1 登录Linux
1.1.2 更改口令
1.1.3 了解shell
1.1.4 了解shell环境
1.1.5 配置shell环境
1.1.6 注销
1.2 信息查询命令
1.2.1 date命令
1.2.3 du命令
1.2.2 df命令
1.2.4 file命令
1.2.5 hostname命令
1.2.6 id命令
1.2.7 ps命令
1.2.8 quota命令
1.2.9 stty命令
1.2.10 time命令
1.2.11 ttY命令
1.2.12 w命令
1.2.13 whereis命令
1.2.14 who命令
1.4 管理用户
1.3.2 使用LILO
1.3 Linux装载程序LILO
1.3.1 配置LILO
1.4.1 添加用户
1.4.2 使用adduser命令
1.4.3 设置用户口令
1.4.4 删除用户
1.5 管理用户组
1.5.1 添加用户组
1.5.2 删除用户组
1.6 管理文件系统
1.6.1 安装文件系统
1.6.2 卸下文件系统
1.7.1 了解TCP/IP配置文件
1.6.3 维护文件系统
1.7 配置TCP/IP网络
1.7.2 主机配置文件
1.7.3 初始化以太网接口
1.7.4 用ifconfig检查网络接口
1.7.5 配置软件回送接口
1.7.6 配置网络接口
1.8 小结
第2章 网络服务器的配置
2.1 配置FTP服务器
2.1.1 FTP服务器简介
2.1.2 安装FTP服务器
2.1.3 查看FTP服务器的设置
2.1.4 配置访问控制文件ftpaccess
2.1.5 配置用户控制文件ftpusers
2.1.6 配置主机控制文件ftphosts
2.1.7 测试服务器是否正常工作
2.1.8 wu-ftp提供的几个程序
2.2 配置WWW服务器
2.2.1 WWW服务器简介
2.2.2 Apache服务器介绍
2.2.3 安装Apache服务器
2.2.4 配置服务器控制文件httpd.conf
2.2.5 配置访问控制文件access.conf
2.2.6 配置资源控制文件srm.Conf
2.2.7 运行服务器程序
2.2.9 浏览个人主页
2.2.8 测试服务器运行情况
2.3 小结
第3章 Linux文件系统
3.1 目录
3.1.1 目录结构
3.1.2 getcwd函数
3.1.3 读取目录
3.2 文件
3.2.1 文件的存储
3.2.2 文件的存储权限
3.2.3 stat和fstat函数
3.2.4 得到用户的信息
3.3.1 ustat函数
3.3 文件系统信息
3.3.2 statfs和fstatfs函数
3.4 小结
第4章 Linux文件系统调用
4.1 文件描述符
4.2 open和close函数
4.3 read和write函数
4.4 lseek函数
4.5 link和unlink函数
4.6 access函数
4.7 chmod,chown和chdir函数
4.8 mkdir和rmdir函数
4.9 mknod函数
4.10 dup和dup2函数
4.11 小结
第5章 Linux设备文件
5.1 设备文件简介
5.2 设备文件的创建
5.3 终端设备文件
5.3.1 终端设备文件的读写
5.3.2 终端设备文件的控制
5.4 软盘设备文件
5.4.1 软盘设备文件的读写
5.4.2 软盘的外挂和sync函数
5.5 小结
6.1.1 task-struct结构
6.1 Linux中的进程
第6章 Linux进程管理
6.1.2 进程状态
6.1.3 进程标识
6.1.4 进程调度
6.1.5 Linux进程调度算法
6.2 Linux进程系统调用
6.2.1 fork与vfork函数
6.2.2 exec函数
6.2.3 exit与_exit函数
6.2.4 wait与waitpid函数
6.3 小结
7.2 信号类别
7.1 信号简介
第7章 信号处理
7.3 关于信号的系统调用
7.3.1 kill命令及kill函数
7.3.2 有关信号集合的调用
7.3.3 signal与sigaction函数
7.3.4 信号处理的另外一些调用
7.3.5 pause与sigsuspend函数
7.3.6 siglongimp与sigsetjmp函数
7.4 小结
第8章 基本进程间通信
8.1 管道通信
8.1.1 普通管道与pipe函数
8.1.2 命名管道与mknod函数
8.2 消息
8.2.1 msgget函数
8.2.2 msgctl函数
8.2.3 msgsnd和msgrcv函数
8.3 小结
第9章 临界区与高级进程间通信
9.1 竞争现象与临界区
9.2 信号量
9.2.1 简介
9.2.2 信号量集
9.2.3 semget函数
9.2.4 semctl函数
9.2.5 semop函数
9.3 共享内存
9.3.1 shmget函数
9.3.2 shmat函数
9.3.3 shmdt函数
9.3.4 shmctl函数
9.3.5 生产者/消费者问题
9.4 小结
第10章 Linux线程
10.1 线程简介
10.1.1 传统进程的局限性
10.1.2 线程的动机
10.1.4 线程概念
10.1.5 用户线程与内核线程
10.1.3 多线程和多处理器
10.2 线程管理
10.2.1 pthread_create函数
10.2.2 pthread_self函数
10.2.3 pthread_exit函数
10.2.4 pthread_join函数
10.2.5 线程的例子
10.3 线程属性
10.3.1 线程属性对象的初始化和销毁
10.3.2 线程堆栈的大小
10.3.3 线程堆栈的地址
10.3.4 线程的拆卸状态
10.3.7 线程的调度策略
10.3.5 线程的作用域
10.3.6 线程的继承性
10.3.8 线程的调度参数
10.3.9 得到线程的属性
10.4 小结
第11章 TCP/IP简介
11.1 网络简介
11.2 TCP/IP及相关协议
11.2.1 IP协议
11.2.2 ICMP协议
11.2.3 ARP协议
11.2.4 TCP协议
11.2.5 UDP协议
11.2.6 DNS协议
11.3 小结
第12章 各种转换
12.1 网络字节序转换函数
12.2 IP地址的转换
12.2.1 inet_aton与inet_addr函数
12.2.2 inet_pton与inet_ntop函数
12.3 名字地址的转换
12.3.1 gethostbyname函数与gethostbyname2函数
12.3.2 gethostbyaddr函数
12.3.3 uname和gethostname函数
12.3.4 得到主机的信息
12.4 服务名的转换
12.4.2 getservbyport函数
12.4.1 getservbyname函数
12.5 高级地址转换
12.5.1 getaddrinfo函数
12.5.2 getnameinfo函数
12.6 小结
第13章 套接字编程
13.1 套接字简介
13.2 套接字编程调用
13.2.1 socket函数
13.2.2 connect函数
13.2.3 bind函数
13.2.4 listen函数
13.2.5 accept函数
13.2.7 recv函数
13.2.6 read函数
13.2.8 recvfrom函数
13.2.9 write函数
13.2.10 send函数
13.2.11 sendto函数
13.2.12 close函数
13.2.13 getsockname和getpeername函数
13.3 gettime程序
13.4 ourhead.h文件
13.5 小结
14.1 TCP套接字编程
14.1.1 简介
第14章 客户机服务器编程
14.1.2 客户机程序的简化
14.1.3 服务器程序的并发
14.1.4 ECHO客户机程序的TCP版本
14.1.5 ECHO服务器程序的TCP版本
14.2 UDP套接字编程
14.2.1 简介
14.2.2 客户机程序的简化
14.2.3 ECHO客户机程序的UDP版本1
14.2.4 ECHO客户机程序的UDP版本2
14.2.5 ECHO服务器程序的UDP版本
14.3 小结
15.1.2 select函数
15.1.1 多协议服务器简介
15.1 多协议服务器
第15章 复杂服务器设计
15.1.3 ECHO服务器的TCP/UCP合并版
15.1.4 ECHO客户机的TCP/UCP合并版
15.2 多服务服务器
15.2.1 多服务服务器简介
15.2.2 ECHO,DAYTIME多服务服务器程序
15.2.3 ECHO,DAYTIME多服务客户机程序
15.2.4 多协议多服务服务器程序
15.2.5 多协议多服务客户机程序
15.3 小结
第16章 远程过程调用
16.1 简介
16.2.2 初始化XDR流
16.2.3 释放XDR流
16.2 外部数据表示(XDR)
16.2.1 XDR工作原理
16.2.4 整数的XDR表示
16.2.5 无符号整数的XDR表示
16.2.6 枚举型的XDR表示
16.2.7 布尔量的XDR表示
16.2.8 浮点数的XDR表示
16.2.9 双精度浮点数的XDR表示
16.2.10 字符的XDR表示
16.2.11 字符串的XDR表示
16.2.12 定长数组的XDR表示
16.2.13 变长数组的XDR表示
16.2.14 XDR的例子
16.3 小结
第17章 RPC编程
17.1 RPC编程简介
17.1.1 RPC程序号、版本号和过程号
17.1.2 网络选择
17.1.3 rpcbind设施
17.2 RPC调用
17.2.1 clnt_create函数
17.2.2 clnt_call函数
17.2.3 svcudp_create函数
17.2.4 svctcp_create函数
17.2.7 svc_sendreply函数
17.2.5 svc_register函数
17.2.6 svc_run函数
17.3 远程计算器
17.3.1 头文件xdr_math.h
17.3.2 客户机程序
17.3.3 服务器程序
17.3.4 程序的编译和运行
17.4 小结
第18章 用rpcgen生成分布式程序
18.1 rpcgen简介
18.2 rpcgen的输入和输出
18.3.2 运行rpcgen
18.3.1 建立.x文件
18.3 rpcgen编程步骤
18.3.3 rpcgen生成的math.h文件
18.3.4 rpcgen生成的math_xdr.c文件
18.3.5 rpcgen生成的math_clnt.c文件
18.3.6 rpcgen生成的math_svc.c文件
18.3.7 rpcgen生成的math_server.c文件
18.3.8 rpcgen生成的math_client.c文件
18.3.9 rpcgen生成的makefile.math文件
18.4 小结
第19章 RPC认证
19.1 简介
19.2 取得客户机的认证风格
19.3 AUTH_NONE认证
19.4 AUTH_SYS认证
19.4.1 设置AUTH_SYS认证
19.4.2 AUTH_SYS认证的例子
19.5 AUTH_DES认证
19.5.1 设置AUTH_DES认证
19.5.2 AUTH_DES认证的例子
19.6 小结
第20章 GTK图形界面编程
20.1 CTK简介
20.2 第一个GUI应用程序
20.2.1 初始化
20.2.2 建立窗口
20.2.4 设置窗口大小
20.2.5 设置边框
20.2.3 设置标题
20.2.6 第一个GTK程序
20.2.7 程序的编译和执行
20.2.8 增加对信号的处理
20.3 增加一个按钮
20.4 小结
第21章 按钮与封装
21.1 按钮
21.1.1 建立按钮
21.1.2 按钮信号处理
21.1.3 一个按钮的例子
21.2 双态按钮
21.3 复选按钮
21.4 单选按钮
21.5 封装构件
21.5.1 封装简介
21.5.2 用盒子封装构件
21.5.3 盒子封装的例子
21.5.4 用表格封装构件
21.5.5 表格封装的例子
21.6 图像按钮
21.7 小结
22.1.2 设置标签正文
22.1.1 创建标签
22.1.3 得到标签正文
22.1 标签
第22章 GTK常用构件
22.2 编辑框
22.2.1 创建编辑框
22.2.2 得到编辑框正文
22.2.3 改变编辑框正文
22.2.4 设置编辑框属性
22.2.5 编辑框的信号
22.2.6 编辑框的例子
22.3 列表框
22.3.1 创建列表框
22.3.2 操作列表框
22.4 复合框
22.3.3 列表框的信号
22.4.1 创建和操作复合框
22.4.2 复合框的信号
22.5 进度条
22.5.1 建立进度条
22.5.2 用定时器测试进度条
22.6 框架
22.6.1 创建框架
22.6.2 框架的例子
22.7 小结
第23章 状态条、工具条和菜单
23.1 状态条
23.1.1 创建状态条
23.1.2 向状态条添加表项
23.1.3 从状态条移走表项
23.1.4 状态条的例子
23.2 工具条
23.2.1 创建工具条
23.2.2 向工具条增加按钮
23.2.3 向工具条上添加像元图
23.2.4 工具条的例子
23.3 菜单
23.3.1 手工建立菜单
23.3.2 用套件建立菜单
23.3.3 检查菜单项
23.3.4 选择菜单项
23.4 小结
24.1 初步建立对话框
第24章 对话框
24.2 两种类型的对话框
24.2.1 无模式对话框
24.2.2 模式对话框
24.3 文件选择对话框
24.3.1 创建文件选择对话框
24.3.2 文件选择对话框的例子
24.3.3 结构GtkFileSelection的定义
24.4 小结
第25章 GTK式样
25.1 简介
25.2 颜色
25.2.1 从系统分配颜色
25.2.2 创建颜色选择对话框
25.2.3 颜色选择对话框的例子
25.3 字体
25.3.1 创建字体选择对话框
25.3.2 字体选择对话框的例子
25.4 小结
第26章 高级GTK构件
26.1 树构件
26.1.1 树构件的创建
26.1.2.树构件的信号
26.1.3 树构件的例子
26.2 列表构件
26.2.1 创建列表构件
26.2.4 删除行
26.2.5 提高插入和删除速度
26.2.3 修改列表构件中的数据
26.2.2 向列表构件增加数据
26.2.6 行与列参数
26.2.7 标题栏
26.2.8 插入像元图
26.2.9 列表构件的例子
26.3 笔记本构件
26.3.1 创建笔记本构件
26.3.2 操作页
26.3.3 增加和删除页
26.3.4 笔记本构件的例子
26.4 小结
参考文献