欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

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、每章后都提供有一定数量的思考和练习题。提供电子课件和习题解答。
  • 书评书荐

  • 附件下载

图书推荐