UNIX系统与软件开发
书 号:9787113168988
丛 书 名:普通高等学校计算机类专业特色教材.精选系列
作 者:邵国金
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:56元
-
内容简介
UNIX/Linuxt系统可被分为4部分:基本操作、系统管理、网络服务及应用和软件开发。本书《UNIX系统环境与软件开发》主要包括其中的3部分(或3篇):基本操作、系统管理和软件开发,分为19章。内容包括:基础篇:入门知识,shell与shell命令;管理篇:用户、组和密码管理;文件系统及管理;进程与作业管理;系统安装、启动及管理;软硬件管理及系统的扩充与升级;网络管理与网络应用开发篇:bshell编程;C编程基础和方法;文件部分系统调用与标准I/O;进程环境;文件属性与目录编程;进程关系与进程控制;进程间通讯;线程编程基础;终端与curses库编程;数据库的使用及编程;网络编程。 -
前言
1.关于本书
UNIX历史悠久且丰富多彩,它于1969年诞生于贝尔实验室科学家Ken Thompson的脑海中,由于出生于计算机硬件还非常原始的时代,从而也造就了它少说多做的朴实风格。自UNIX诞生至今,UNIX一直是各大学和计算机爱好者学习和研究操作系统的范本。
UNIX是开源的先驱和典范,也是计算机爱好者和hacker们的最爱,同时UNIX也在不断地从爱好者们的成果中汲取营养,而使自己不断发展、不断成长,而且越来越健壮,并一直应用于生产和商业领域,为人类和社会的发展不断地做着贡献。随着Linux和Android等的出现更为UNIX家族增添了新的成员,也带来了更多的用户。
UNIX家族庞大,成员众多,从大中型机到微型机,再到手持机和手机,到处都有它的身影和成功应用,很难说清它有多少厂家和版本。现在开源和免费的各种Linux、BSD和Solaris,以及商用系统,如IBM的AIX、HP的UX、SCO的OpenServer和UNIXWare、Apple的Mac OS X、Oracle的Sun OS和Solaris等都是UNIX家族的重要成员。
笔者是UNIX系统的老用户和忠实的支持者,对UNIX有特殊的感情,有意为UNIX的应用和文化传播做一些工作,也愿意为UNIX方面的人才培养作一点贡献。但是,毕竟UNIX/Linux的版本和厂家太多,不能遍及,故本书只选择了可以免费获得并免费使用且无版权争议,又具有广泛代表性的Fedora 16、FreeBSD 9和Solaris 11进行介绍,同时也希望对其他版本的Linux和UNIX有所裨益。
必须要看到,将不同风格的UNIX/Linux放在一起介绍和讨论不是件容易的事,或者说是很有难度的,但这样做会给本书的使用者带来更多的信息和更大的益处,虽然不能完全做到“一本通”,但却能使使用者既能看到不同系统间的相同或不同点,领略不同的风格,又能从不同风格中领会程序或系统设计的意义和方法。
2.本书的结构
本书共分4篇19章,大致结构如下。
(1)基础篇:包括入门知识和shell与shell命令2章。内容包括系统简介,系统的开启与关闭、用户登录与注销;shell基本功能与基本概念、基本操作命令和shell的启动。通过本部分的学习,可以使用户胜任UNIX系统基本操作工作。
(2)管理篇:包括用户管理和密码管理,文件系统及管理,进程与作业管理,系统安装、启动与管理,软硬件管理及系统的扩充与升级和网络管理与网络应用等6章,内容几乎涉及UNIX系统日常管理的所有方面。通过本部分的学习,可以使用户了解UNIX系统日常管理任务和掌握管理工具,胜任管理工作。
(3)编程基础篇:包括bshell编程及C编程基础和方法2章。通过本篇的学习可以使用户掌握shell编程技术和C编程的基础和方法,为shell命令的综合应用和编程打下基础。
(4)开发篇:包括文件部分系统调用与标准I/O,UNIX系统进程环境,文件属性与目录编程,进程关系与进程控制,进程间通信,线程编程基础,终端与curses库编程,数据库的使用及编程和网络编程等9章,内容涵盖了UNIX系统所有的基本开发部分。通过本篇的学习,可以使用户对UNIX/Linux系统有更深入的理解,并能从事UNIX/Linux应用软件的开发工作。
3.本书的特点
本书的编写基于组织与编写者近20年的UNIX/Linux应用、管理和开发经验,层次分明、概念清楚、内容翔实、可操作性强,既便于读者循序渐进地系统学习,又能够使读者了解到UNIX/Linux的最新发展,具有以下特点:
(1)基于实际应用和开发经验,突出理论与实践的结合和实际动手能力培养。
(2)面向基础、面向应用、面向就业,重视应用型人才培养,具有较强的实用性和指导性。
(3)基于流行版本的Fedora、FreeBSD和Solaris系统,涵盖范围广,具有广泛的代表性。
(4)涉及UNIX/Linux基本操作、系统管理和软件开发的几乎所有内容。
(5)突出实例和操作步骤,所有示例和代码均可不加调试地直接使用。
(6)每章后都提供有一定数量的练习题,并提供电子课件和习题解答。
4.编者信息
本书由邵国金任主编,耿永军和张俊峰任副主编。主编负责全书的策划与编者分工工作,并审定全部书稿;副主编协助主编做策划和审统稿工作。参编人员分工及完成情况如下:第1~3章由张俊峰编写,第4~6章由耿永军编写,第7、8章由沙锋编写,第11、18章由张翼飞编写,第14、15章由郭猛编写,第10章由王细薇编写,第9、12、13、16、17和19章由邵国金编写。
5.适用对象
本书适合作为高等院校UNIX/Linux应用、管理与开发方面的教材,也可作为UNIX/Linux工作和管理者的参考书,更可作为UNIX/Linux操作系统爱好者的益友。
6.其他说明
在本书的编写过程中,参考了大量的UNIX/Linux方面的书籍和网络资源,尤其是Fedora、FreeBSD和Solaris系统的网络资源、电子文档和Wiki百科等,在参考文献中不便逐一列出,在此一并表示感谢。
面对UNIX/Linux操作系统的新发展和新成就,要编写一本综合多个操作系统的高水平教材感到压力很大,加之理论水平不高和时间仓促等因素,疏漏之处难免,欢迎广大专家、学者和读者给予批评指正,本书编写组衷心希望能得到大家的支持和帮助,共同探讨UNIX/Linux操作系统的工作和教学体会,促进教学和应用水平的提高。
编 者
2013年6月 -
目录
基 础 篇
第1章 入门知识 1
1.1 UNIX系统简介 1
1.1.1 UNIX系统的产生
及演变 1
1.1.2 UNIX系统的特点 3
1.2 所用系统简介 5
1.2.1 Linux和Fedora 5
1.2.2 BSD与FreeBSD 5
1.2.3 Sun OS和Solaris 6
1.3 系统的开关机 7
1.3.1 系统的开启与用户登录 7
1.3.2 用户的注销 9
1.3.3 系统关闭与重启动 9
1.4 在线帮助 12
1.4.1 man手册 12
1.4.2 info 13
习题 14
第2章 shell与shell命令 15
2.1 shell基本功能与基本概念 15
2.1.1 shell基本功能 15
2.1.2 字符与保留字 16
2.1.3 文件命名及文件类型 18
2.1.4 目录结构与路径 19
2.1.5 shell命令解释及执行 21
2.1.6 命令行编辑特性 21
2.1.7 环境变量与变量 22
2.1.8 标准流与输入输出重
定向 23
2.1.9 管道 25
2.1.10 引号机制、命令替换与
参数替换 25
2.1.11 shell种类 26
2.1.12 shell命令的返回值 27
2.2 基本操作命令 27
2.2.1 目录基本操作命令 27
2.2.2 文件操作基本命令 29
2.2.3 文本文件内容处理与
编辑基本命令 33
2.2.4 进程管理基本命令 42
2.2.5 时间管理命令 43
2.2.6 文件或目录比较命令 45
2.2.7 其他操作命令 47
2.3 shell的启动 51
2.3.1 shell的启动流程和工作
过程 51
2.3.2 用户登录控制与shell
定制 52
习题 52
管 理 篇
第3章 用户管理和密码管理 53
3.1 UNIX系统的用户和组 53
3.1.1 用户与uid 53
3.1.2 用户组 53
3.2 与用户、组和密码管理相关
的文件 53
3.2.1 /etc/passwd 53
3.2.2 /etc/shadow 54
3.2.3 /etc/group 54
3.2.4 skel 55
3.2.5 其他文件 55
3.2.6 FreeBSD 9的/etc/master.passwd
文件 55
3.3 用户管理命令 56
3.3.1 Fedora和Solaris的用户
管理命令 56
3.3.2 FreeBSD 9的用户管理
命令 57
3.3.3 更改用户的登录shell 58
3.4 组管理命令 58
3.4.1 Fedora和Solaris的组
管理命令 58
3.4.2 FreeBSD 9的组管理 59
3.5 密码管理 59
3.5.1 综述 59
3.5.2 密码管理命令(passwd) 60
3.5.3 用户上锁与解锁 60
3.6 与用户身份和位置相关的
其他命令 61
3.6.1 显示与用户和组相关
的信息(id) 61
3.6.2 显示已登录用户的信息
(who)及本用户名
信息(whoami) 61
3.6.3 终端接收信息控制
(mesg) 62
3.6.4 向系统中已登录的所
用户发信息(wall) 62
3.6.5 显示用户所使用的终端
设备(tty) 62
3.6.6 不退出系统而将自己切换
成其他用户或以其他用户
身份工作(su) 63
3.6.7 以其他用户身份执行程序
(sudo) 64
3.6.8 改变进程的根目录
(chroot) 66
习题 67
第4章 文件系统及管理 68
4.1 硬盘存储结构与分区划分 68
4.2 UNIX文件系统内部结构 71
4.2.1 UNIX文件系统
的特点 71
4.2.2 UNIX文件系统
的结构 71
4.3 文件系统权限及表示 73
4.3.1 三类人 73
4.3.2 三种权限 73
4.3.3 权限表示 74
4.3.4 文件默认权限与umask 74
4.4 权限管理命令 75
4.4.1 umask 75
4.4.2 chmod 75
4.4.3 chown 76
4.4.4 chgrp 76
4.4.5 ext2+文件系统的新增属性及其管理 76
4.5 文件系统管理及使用 77
4.5.1 UNIX/Linux支持的
文件系统 77
4.5.2 UNIX/Linux系统使用
的存储设备 79
4.5.3 文件系统创建 81
4.5.4 文件系统的使用 90
4.5.5 文件系统的检查、修复与
同步 94
4.6 与文件系统管理相关的其他
命令 96
4.6.1 文件查找命令(find) 96
4.6.2 文件复制命令(dd) 98
4.6.3 创建文件连接(ln) 98
4.6.4 特别文件创建(mknod/
mkfifo) 99
4.6.5 统计磁盘空间和文件
系统的使用情况(df) 99
4.6.6 统计目录使用磁盘空间
情况(du) 100
4.7 数据备份与压缩 100
4.7.1 数据备份的任务 100
4.7.2 文件的压缩与解压缩 101
4.7.3 磁盘文件归档管理
命令(tar) 103
4.7.4 文件系统备份与复制
命令(cpio) 105
习题 107
第5章 进程与作业管理 108
5.1 程序和进程的概念 108
5.1.1 程序、进程、作业和
任务 108
5.1.2 三类进程 108
5.1.3 系统的启动与进程树
的形成 109
5.1.4 0#进程与1#进程 109
5.1.5 进程状态及转换 110
5.2 UNIX/Linux的进程调度与
信号 110
5.2.1 调度策略与优先级的
计算 111
5.2.2 信号与软中断 111
5.3 setuid、setgid和sticky属性 112
5.3.1 suid和sgid属性 113
5.3.2 sticky属性 114
5.4 进程管理与调度命令 114
5.4.1 进程或作业的挂起及前/后运行切换(fg/bg/jobs) 114
5.4.2 查询进程状态(ps) 115
5.4.3 按名称终止进程或所有进程(killall) 116
5.4.4 进程查找(pgrep) 117
5.4.5 查找进程并向它们发信号(pkill) 118
5.4.6 确定使用指定文件或文件系统的进程(fuser) 118
5.4.7 让进程抗信号HUP运行(nohup) 119
5.4.8 设置程序运行的优先级(nice) 119
5.4.9 改变进程的优先级
(renice) 120
5.5 作业和任务调度 120
5.5.1 at和batch 120
5.5.2 crontab 122
习题 124
第6章 系统安装、启动与管理 125
6.1 系统安装 125
6.1.1 安装任务与准备 125
6.1.2 系统安装和运行所需的
基本分区 126
6.1.3 安装过程 128
6.1.4 虚拟机的安装与使用 128
6.2 引导器 128
6.2.1 Linux和Solaris的GRUB
引导器 128
6.2.2 GRUB常用术语 129
6.2.3 操作界面 129
6.2.4 GRUB1及其配置 130
6.2.5 GRUB2及其配置 133
6.2.6 系统的启动及启动参数
修改 136
6.2.7 FreeBSD 9的启动 137
6.3 系统的启动过程分析 138
6.3.1 Linux系统的启动过程
分析 138
6.3.2 Solaris 11系统的启动过程
分析 142
6.3.3 FreeBSD 9系统的启动过程分析 142
6.4 服务管理 144
6.4.1 Linux系统的服务管理 144
6.4.2 Fedor 15+ Linux的服务
管理 145
6.4.3 Solaris 11的服务管理 150
6.4.4 FreeBSD 9的服务管理 153
6.4.5 超级服务器(inetd/
xinetd) 154
6.5 日志管理 156
6.5.1 日志配置文件 156
6.5.2 常见日志文件 156
6.5.3 文本型日志 157
6.5.4 非文本型日志 157
6.5.5 内核启动日志 158
6.5.6 日志滚动 158
6.6 系统管理 158
6.6.1 系统管理的任务 158
6.6.2 系统管理工具与命令 159
6.6.3 内核参数调整 161
习题 162
第7章 软硬件管理及系统的扩充与
升级 163
7.1 软件包管理 163
7.1.1 UNIX的传统软件包
管理 163
7.1.2 Red Hat Linux和Fedora
的软件包管理 163
7.1.3 FreeBSD 9的软件包
管理 166
7.1.4 Solaris 11的软件包
管理 168
7.2 系统的升级 173
7.2.1 软件包源及升级设置 173
7.2.2 软件包管理图形界面 173
7.2.3 系统升级 174
7.3 硬件管理概述及常见设备 174
7.3.1 硬件管理概述 174
7.3.2 Fedora系统说明 175
7.3.3 FreeBSD 9说明 175
7.3.4 Solaris 11说明 176
7.4 打印机的管理与使用 176
7.4.1 CUPS软件包安装与
服务管理 176
7.4.2 CUPS打印机浏览器
管理 178
7.4.3 CUPS打印机的命令
界面管理与使用 180
7.4.4 打印机使用示例 183
7.5 交换区管理 184
7.5.1 Fedora的交换区管理 184
7.5.2 FreeBSD 9的交换设备
管理 185
7.5.3 Solaris 11的交换设备
管理 186
7.6 串口与终端管理 188
7.6.1 综述 188
7.6.2 串口管理 188
7.6.3 stty与终端设置 188
7.6.4 终端类型与能力 190
习题 193
第8章 网络管理与网络应用 194
8.1 TCP/IP概述 194
8.1.1 TCP/IP协议体系结构 194
8.1.2 IP地址 194
8.1.3 网络掩码 196
8.1.4 端口及服务 196
8.1.5 物理地址、逻辑地址和
主机名 196
8.2 与网络有关的配置文件 197
8.2.1 /etc/hosts 197
8.2.2 /etc/services 198
8.2.3 /etc/resolv.conf 198
8.2.4 /etc/networks 199
8.3 TCP/IP配置 199
8.3.1 TCP/IP网络配置参数
与配置方式 199
8.3.2 一个通用的TCP/IP网
络工具(ifconfig) 199
8.3.3 Fedora 16的网络配置 200
8.3.4 Solaris 11的网络配置 203
8.3.5 FreeBSD 9的网络配置 208
8.4 网络管理通用命令 210
8.4.1 ping 210
8.4.2 netstat 211
8.4.3 arp 213
8.4.4 hostname 213
8.4.5 route 214
8.4.6 traceroute 215
8.5 网络应用常用命令介绍 216
8.5.1 telnet与ssh 216
8.5.2 ftp 217
8.5.3 mail / mailx 219
8.5.4 nslookup和host 221
8.5.5 finger 221
8.5.6 write 222
8.5.7 talk 222
8.5.8 r-命令 222
8.6 常用的网络服务 223
8.6.1 telnet服务器 223
8.6.2 ssh服务器 223
8.6.3 ftp服务器 223
习题 225
编程基础篇
第9章 bshell编程 226
9.1 正则表达式简介 226
9.1.1 字符集 226
9.1.2 bshell的模式表达式 229
9.2 流编辑(sed) 229
9.2.1 功能及用法 229
9.2.2 sed的命令 230
9.2.3 sed示例 231
9.3 模式搜索与处理(awk) 232
9.3.1 功能及用法 232
9.3.2 记录和域 232
9.3.3 变量 232
9.3.4 操作符 233
9.3.5 控制语句 233
9.3.6 函数 234
9.3.7 awk程序及执行 235
9.3.8 awk使用示例 235
9.4 Bourne shell及其编程 237
9.4.1 特殊字符 237
9.4.2 I/O重定向 237
9.4.3 变量与参数 239
9.4.4 shell的状态 240
9.4.5 shell的调用与变量传递 241
9.4.6 shell程序设计 242
9.4.7 命令行参数与选项的
处理 251
9.4.8 shell脚本程序格式及
注意事项 253
9.4.9 shell程序调试 255
9.5 bash简介 255
9.5.1 bash的特色 255
9.5.2 bash部分特点介绍 255
习题 258
第10章 C编程基础和方法 259
10.1 基本知识 259
10.1.1 头文件 259
10.1.2 库文件 259
10.1.3 系统调用和库函数 260
10.1.4 基本数据类型 260
10.1.5 错误处理 261
10.2 编译器 262
10.2.1 gcc/g++用法 262
10.2.2 gcc/g++的工作过程 263
10.2.3 C/C++程序编译
示例 264
10.3 静态库及管理 265
10.3.1 一个多模块工程示例 265
10.3.2 管理静态库 265
10.4 共享库的管理 267
10.4.1 共享库的搜索及控制 267
10.4.2 共享库的配置与查询 267
10.4.3 共享库的构建与安装 267
10.4.4 共享库的使用 268
10.4.5 共享库的使用示例 268
10.5 make与makefile 269
10.5.1 make命令的用法简介 270
10.5.2 makefile文件 270
10.5.3 makefile示例 271
10.6 调试器gdb 273
10.6.1 gdb功能 273
10.6.2 gdb的基本内部命令 273
10.6.3 程序调试示例 273
10.7 其他编程工具简介 274
10.7.1 常用库与GNOME/
GTK 274
10.7.2 Kdevelop/Qt开发 274
10.7.3 Java开发 275
10.7.4 Perl开发 275
10.7.5 数据库开发 276
10.7.6 PHP开发 276
习题 276
开 发 篇
第11章 文件部分系统调用与
标准I/O 277
11.1 文件部分系统调用 277
11.1.1 文件打开与关闭 277
11.1.2 文件的读/写 279
11.1.3 简单I/O示例 279
11.1.4 文件指针及移动 281
11.1.5 文件的共享 283
11.1.6 文件的互斥与锁 285
11.1.7 fcntl 286
11.1.8 ioctl 287
11.1.9 原子操作 287
11.1.10 文件低级I/O示例 287
11.2 标准I/O 290
11.2.1 流和文件对象 290
11.2.2 流的打开与关闭 290
11.2.3 标准I/O的缓冲区类型
及更改 291
11.2.4 格式化I/O 292
11.2.5 字符I/O 294
11.2.6 行I/O 294
11.2.7 二进制I/O 295
11.2.8 流定位 295
11.2.9 错误判断及清除 296
11.2.10 获得文件描述符 296
11.3 FILE对象与文件整数描述符 296
11.3.1 FILE对象与文件整数
描述符的关系 296
11.3.2 将文件作为标准I/O 297
11.4 临时文件 297
11.4.1 临时文件的命名规则 297
11.4.2 临时文件的使用 297
11.4.3 临时文件示例 298
习题 300
第12章 UNIX系统进程环境 301
12.1 命令行参数 301
12.1.1 C程序的入口:main() 301
12.1.2 命令参数处理:getopt() 302
12.1.3 命令行参数处理示例 302
12.2 环境变量 304
12.2.1 环境变量表 304
12.2.2 环境变量的访问及设置 304
12.3 进程的终止 306
12.3.1 exit和_exit 306
12.3.2 atexit 306
12.4 主机信息 307
12.4.1 获得系统信息(uname) 307
12.4.2 获得或设置主机名 308
12.5 用户标识信息 308
12.5.1 根据用户标识或用户名
获取passwd信息 308
12.5.2 搜索passwd文件 309
12.5.3 根据组标识或组名获取
组信息 309
12.5.4 搜索group文件 309
12.5.5 用户信息获取示例 310
12.6 用户进程标识信息 311
12.6.1 获得进程标识信息(getpid和getppid) 311
12.6.2 获得用户标识信息(getuid和geteuid) 311
12.6.3 获得组标识信息(getgid和getegid) 311
12.6.4 用户进程标识信息示例 311
12.7 时间和日期信息 312
12.7.1 获取系统时间 312
12.7.2 显示与转换时间格式 312
12.7.3 设置时间 314
12.8 日志信息 314
12.8.1 日志记录 314
12.8.2 日志操作示例 315
习题 315
第13章 文件属性与目录编程 317
13.1 文件属性 317
13.1.1 文件属性查询(stat、fstat
和lstat) 317
13.1.2 文件权限管理(access、umask、chmod和fchmod) 319
13.2 文件链接 321
13.2.1 创建硬链接link() 321
13.2.2 创建符号链接symlink() 321
13.2.3 读取符号链接的内容
readlink() 321
13.2.4 文件链接示例 321
13.3 文件删除 322
13.3.1 删除文件unlink() 322
13.3.2 删除文件或空目录
remove() 323
13.3.3 文件删除示例 323
13.4 文件主、组管理 323
13.5 文件长度及截取 325
13.5.1 文件长度 325
13.5.2 文件的截取 325
13.6 更改文件的时间属性 325
13.6.1 utime() 325
13.6.2 utimes() 326
13.6.3 文件长度与时间示例 326
13.7 文件的更名与移动 328
13.8 目录编程 328
13.8.1 获得当前工作目录(getcwd
和getwd) 328
13.8.2 目录的改变(chdir和
fchdir) 328
13.8.3 目录的创建(mkdir) 329
13.8.4 目录的删除(rmdir) 329
13.8.5 目录的其他操作 329
13.8.6 目录操作综合示例 330
习题 333
第14章 进程关系与进程控制 334
14.1 进程的创建与程序的执行 334
14.1.1 进程创建系统调用
(fork和vfork) 334
14.1.2 exec()系列函数 336
14.1.3 shell程序的执行及示例 337
14.1.4 system() 339
14.1.5 更改用户的uid和gid 340
14.1.6 suid、sgid与安全程序设
计问题 340
14.2 子进程退出与进程等待 341
14.2.1 子进程退出与僵尸进程 342
14.2.2 进程等待(wait和
waitpid) 342
14.2.3 孤儿进程 344
14.3 信号编程 344
14.3.1 信号 344
14.3.2 信号通信(kill、signal和
raise) 345
14.3.3 进程的睡眠、闹钟与非正
常终止 347
14.3.4 信号集 348
14.4 用户登录、进程组与会话期 355
14.4.1 进程组 355
14.4.2 会话 355
14.4.3 控制终端 356
14.4.4 作业控制 356
14.5 chroot()编程 357
习题 358
第15章 进程间通信 359
15.1 进程间通信简介 359
15.1.1 管道 359
15.1.2 IPC 360
15.2 管道编程 363
15.2.1 匿名管道(PIPE) 363
15.2.2 命名管道(FIFO) 366
15.2.3 将管道用作标准I/O 369
15.2.4 进程管道popen()和
pclose() 370
15.3 消息队列编程 371
15.3.1 消息队列操作函数 371
15.3.2 消息队列编程示例 373
15.4 共享内存编程 375
15.4.1 共享内存操作函数 375
15.4.2 共享内存编程示例 376
15.5 信号量集编程 378
15.5.1 信号量集概述 378
15.5.2 信号量的定义及操作 378
15.5.3 UNIX信号量操作函数 379
15.5.4 信号量编程示例 380
习题 383
第16章 线程编程基础 384
16.1 基本知识 384
16.1.1 线程基础 384
16.1.2 可重入函数与线程安全 385
16.2 线程操作基本函数及简单
示例 386
16.2.1 线程操作基本函数 386
16.2.2 线程操作简单示例 388
16.3 线程属性 390
16.3.1 线程的属性结构 390
16.3.2 属性结构的初始化与
清理 391
16.3.3 线程属性及修改 391
16.4 线程同步 392
16.4.1 用信号量实现线程间
同步 392
16.4.2 使用互斥量实现线程
间同步 395
16.4.3 使用条件变量实现线
程间同步 399
16.5 线程参数与多线程并发服
务器 402
16.5.1 线程参数 402
16.5.2 线程返回值 402
16.5.3 并发服务器框架 402
习题 403
第17章 终端与curses库编程 404
17.1 终端编程 404
17.1.1 temios结构与终端
属性 404
17.1.2 查询和改变终端
设备属性 406
17.1.3 波特率设置 408
17.1.4 行控制函数 408
17.1.5 规范模式 408
17.1.6 非规范模式 408
17.1.7 规范模式下的密码
读取示例 409
17.2 终端数据库访问编程 411
17.2.1 相关函数 411
17.2.2 终端类型设置与性能
访问编程示例 412
17.3 curses库编程 414
17.3.1 curses简介 414
17.3.2 curses程序结构 414
17.3.3 curses库及应用 415
17.3.4 窗口与子窗体 420
17.3.5 键盘与功能键 421
习题 424
第18章 数据库的使用及编程 425
18.1 DBM数据库编程 425
18.1.1 DBM简介 425
18.1.2 库函数 426
18.1.3 DBM使用示例 427
18.2 MySQL数据库的使用 432
18.2.1 MySQL的使用 432
18.2.2 MySQL的管理 437
18.3 MySQL数据库的编程 440
18.3.1 开发包、头文件和
库函数 440
18.3.2 MySQL C API数据
类型 440
18.3.3 MySQL C API函数 441
18.3.4 MySQL C API编程
示例 447
习题 450
第19章 网络编程 451
19.1 网络通信基础 451
19.1.1 守候进程及工作方式 451
19.1.2 客户机/服务器(C/S)
模型 452
19.1.3 套接字及基本类型 453
19.1.4 头文件及套接字地址
结构 453
19.1.5 与主机相关的数据
结构及函数 454
19.1.6 与服务器相关的数据
结构及函数 454
19.1.7 字节顺序及转换函数 455
19.1.8 IP地址及主机名转
换常用函数 455
19.2 TCP编程 457
19.2.1 socket编程常
用函数 457
19.2.2 TCP C/S编程模型 460
19.2.3 TCP编程示例 461
19.2.4 TCP应用说明 465
19.3 UDP编程 466
19.3.1 UDP常用函数 466
19.3.2 UDP C/S通信模型 466
19.3.3 UDP示例程序 467
19.4 C/M/S结构及编程 473
19.4.1 C/M/S结构 473
19.4.2 交易型中间件
程序结构 473
19.5 一个基于线程的并发
服务器程序 474
习题 476
参考文献 478 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1邵国金 硕士教授 操作系统 工作单位河南城建学院 邮政编码 电话 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 邵国金,河南城建学院计算机学院副院长,教授,中国计算机学会会员,河南省计算机学会理事,平顶市计算机学会常务理事,一起从事教学和科研工作。主持项目多个并通过省级签定,发表学术论文20多篇,多篇被EI收录,主、参编出版学术著作和教材5部。曾在一家国有商业银行工作10多年,在UNIXLinux的应用与开发有丰富的经验。现在河南城建学院计算机学院从事教学和教学管理工作,一直从事计算机操作系统、UNIXLinux系统、嵌入式等的教学与研究工作。 -
编辑推荐
1、基于实际应用和开发经验;突出理论与实践的结合;实际动手能力培养;面向基础、面向应用、面向就业;重视应用型人才培养,具有较强的实用性和指导性;2、基于最新版本的Fedora、FreeBSD和Solaris系统,涵盖范围广,具有广泛的代表性。3、涉及UNIX/Linux基本操作、系统管理和软件开发的几乎所有内容。4、突出实例和操作步骤;5、每章后都提供有一定数量的思考和练习题。提供电子课件和习题解答。 -
书评书荐
-
附件下载
图书推荐