UNIX/Linux程序设计教程

UNIX/Linux程序设计教程

赵克佳, 沈志宇, 编著

出版社:机械工业出版社

年代:2012

定价:69.0

书籍简介:

本书遵循最新的“统一UNIX规范版本4”,以Linux为平台,系统地讲述了UNIX API各种函数的编程方法。在保留《UNIX程序设计教程》第一版讲述透彻、深入浅出特点的基础上,本书第二版对全书内容做了较大修订,并增加了实时和多线程程序设计内容。本书内容包括UNIX的发展历程与标准,标准I/O和低级I/O,文件与目录操作,进程环境与进程控制,信号处理,日期和时间,终端I/O,高级I/O,进程之间的通信,套接字与网络通信,多线程编程。

书籍目录:

前言第1章 unix导论1.1 unix简史1.1.1 unix的诞生1.1.2 unix的早期发展1.1.3 bsd unix1.1.4 系统v unix1.1.5 unix的商业化1.1.6 linux1.2 标准1.2.1 svid1.2.2 posix1.2.3 统一unix规范1.2.4 c标准1.3 unix基本概念1.3.1 程序和进程1.3.2 内核1.3.3 shell1.3.4 用户名与用户id、用户组与组id1.3.5 特权用户1.3.6 系统调用与库函数1.4 系统库1.4.1 头文件1.4.2 保留字1.4.3 特征测试宏1.5 示例程序和编译环境1.6 错误处理1.7 系统信息1.7.1 机器标识1.7.2 硬件/软件类型识别1.8 系统能力限制1.8.1 一般能力限制值1.8.2 系统和文件特征选项1.8.3 sysconf()、pathconf()和fpathconf()函数1.9 思考与练习第2章 标准输入输出2.1 unix 输入输出基本概念2.2 流和file对象2.3 打开和关闭流2.4 读和写流2.4.1 字符i/o2.4.2 行i/o2.4.3 读回退2.4.4 块i/o2.5 文件定位2.6 文件结束和错误指示器2.7 流缓冲2.8 格式i/o2.8.1 格式输出2.8.2 格式输入2.9 临时文件2.10 思考与练习第3章 低级输入输出3.1 文件描述字的打开、创建和关闭3.2 read()和write()函数3.3 设置描述字的文件位置3.4 dup()和dup2()函数3.5 fdopen()和fileno()函数3.6 文件控制函数fcntl()3.6.1 重复文件描述字3.6.2 文件描述字标签3.6.3 文件状态标签3.7 非阻塞i/o3.8 readv()和writev()函数3.9 fsync()和fdatasync()函数3.10 思考与练习第4章 文件与目录4.1 文件4.1.1 stat()、fstat()和lstat()函数4.2 文件类型4.2.1 普通文件4.2.2 目录4.2.3 链接与link()函数4.2.4 符号链接与symlink()和readlink()函数4.2.5 特别文件4.2.6 测试文件的类型4.3 文件的属主和用户组4.3.1 chown()、fchown()和lchown()函数4.4 文件方式4.4.1 文件访问权限4.4.2 调整用户id和调整组id4.4.3  sticky位4.4.4 文件方式位小结4.5 确定和改变文件方式4.5.1 umask()函数4.5.2 chmod()和fchmod()函数4.5.3 access()函数4.6 文件大小4.6.1 截断文件4.7 文件时间4.7.1 utime()和utimes()函数4.8 文件的删除与换名4.8.1 删除文件和目录4.8.2 文件换名4.9 目录操作4.9.1 工作目录4.9.2 创建目录4.9.3 读目录流4.9.4 对目录流的随机访问4.10 思考与练习第5章 进程环境5.1 main()函数5.2 命令行参数5.2.1 命令行参数的语法约定5.2.2 扫描命令行中的选项5.3 环境变量5.3.1 环境表5.3.2 访问环境5.4 终止进程5.4.1 出口状态5.4.2 终止前的清理5.4.3 流产程序5.5 进程的存储空间5.5.1 进程的地址空间5.5.2 动态存储分配与释放5.5.3 释放分配的存储单元5.6 setjmp()和longjmp()函数5.7 进程资源5.7.1 查看与设置资源限制5.7.2 资源使用统计5.8 用户信息5.8.1 用户名5.8.2 用户数据库5.8.3 组数据库5.9 进程的身份凭证5.10 调整进程的身份5.11 思考与练习第6章 进程控制6.1 进程标识6.2 进程创建6.3 执行一个新程序6.4  等待进程完成6.5 进程终止与僵死进程6.6 system()函数6.7 进程组6.8 会晤期6.9 控制终端6.10 作业控制6.11 思考与练习第7章 信号处理7.1 信号概念7.2 unix 信号7.2.1 程序错误类信号7.2.2 程序中止类信号7.2.3 闹钟类信号7.2.4 i/o类信号7.2.5 作业控制类信号7.2.6 操作错误类信号7.2.7 其他信号7.3 生成信号7.3.1 raise()函数7.3.2 kill()函数7.4 设置信号的动作7.4.1 signal()函数7.4.2 进程初启时的信号动作7.4.3 不可靠信号7.4.4 sigaction()函数7.5 信号句柄7.5.1 正常返回的信号句柄7.5.2 终止进程的句柄7.6 阻塞信号7.6.1 sigset_t类型和信号集操作7.6.2 设置信号屏蔽7.6.3 检查悬挂信号7.7 等待信号7.7.1 pause()函数7.7.2 sigsuspend()函数7.8 使用分开的信号栈7.9 信号句柄编程技巧7.9.1 句柄内非局部控制转移7.9.2 可重入函数与异步信号安全函数7.9.3 被信号中断的系统调用7.9.4 原子数据7.10 实时信号7.10.1 sa_siginfo标志7.10.2 发送实时信号7.10.3 等待实时信号7.11 思考与练习第8章 时间与定时8.1 系统时钟8.1.1 time()函数8.1.2 gettimeofday()函数8.2 时间格式转换8.2.1 分解的日历时间8.2.2 格式化日期与时间8.3 cpu时间与墙钟时间8.3.1 clock()函数8.3.2 times()函数8.4 睡眠与定时8.4.1 sleep()函数8.4.2 设置定时器8.5 实时时钟与定时8.5.1 实时时钟8.5.2 实时睡眠8.5.3 实时定时器8.5.4 创建和删除实时定时器8.5.5 设置实时定时器8.5.6 定时器超期计数8.6 思考与练习第9章 终端i/o9.1 需要改变终端设置的例子9.2 终端i/o概述9.2.1 终端9.2.2 串行端口9.2.3 终端设备文件9.2.4 输入输出队列9.2.5 加工和非加工输入方式9.3 gti控制接口9.3.1 termios数据结构9.3.2 gti控制函数9.4 终端属性9.4.1 输入方式9.4.2 输出方式9.4.3 控制方式9.4.4 局部方式9.4.5 特殊字符9.4.6 stty命令9.5 终端标识9.6 改变终端属性9.7 加工方式与非加工方式输入9.7.1 加工方式输入9.7.2 非加工方式输入9.8 设置波特率9.9 行控制函数9.10 串行端口程序设计9.11 思考与练习第10章 高级i/o10.1 文件锁10.1.1 fcntl()文件锁操作10.1.2 锁的测试、请求和释放10.1.3 文件锁与进程和文件的关系10.1.4 死锁10.1.5 建议锁与强制锁10.2 信号驱动的i/o10.3 多路转接i/o10.3.1 select()函数10.3.2 poll()函数10.4 异步i/o10.4.1 异步i/o控制块10.4.2 i/o完成时的信号交付10.4.3 异步i/o的优先级10.4.4 异步i/o函数10.4.5 异步i/o之例10.4.6 异步i/o注意事项10.5 存储映射i/o10.6 思考与练习第11章 进程间通信11.1 管道11.1.1 创建管道11.1.2 父子进程间的管道通信11.1.3 连接标准输入和标准输出的管道11.1.4 popen()和pclose()函数11.1.5 管道i/o的原子性11.2 fifo特别文件11.2.1 创建fifo11.2.2 fifo操作11.2.3 fifo用于客户/服务通信11.3 系统v ipc11.3.1 关键字和标识11.3.2 ipc资源描述结构与成员ipc_perm11.3.3 ipcs和ipcrm命令11.4 消息队列11.4.1 创建和获得消息队列11.4.2 消息队列的查询、设置和删除11.4.3 发送和接收消息11.5 共享存储段11.5.1 创建和获得共享存储段11.5.2 共享存储段的查询、设置和删除11.5.3 共享存储段的连接和分离11.6 信号量11.6.1 创建和获得信号量标识11.6.2 信号量的查询、设置和删除11.6.3 信号量操作11.7 思考与练习第12章 套接字与网络通信12.1 tcp/ip协议12.2 套接字12.3 套接字地址结构12.3.1 ip地址12.3.2 域名地址12.3.3 服务与端口号12.3.4 套接字地址数据结构12.3.5 字节顺序12.4 命名套接字12.5 套接字通信模式12.6 流套接字操作12.6.1 请求连接12.6.2 接收连接12.6.3 getsockname()和getpeername()函数12.6.4 多客户服务12.6.5 send()和recv()函数12.7 套接字选项12.8 带外数据12.8.1 tcp带外数据12.8.2 带外数据的发送和接收12.8.3 带外数据标志12.9 数据报套接字操作12.9.1 sendto()和recvfrom()函数12.9.2 数据报套接字客户/服务之例12.9.3 使用connect()函数12.10 超时处理12.11 思考与练习第13章 线程13.1 线程概念13.1.1 什么是线程13.1.2 线程的好处13.1.3 pthreads线程13.1.4 线程标识13.2 创建线程13.3 终止线程13.3.1 等待线程终止13.3.2 可汇合与分离的线程13.4 创建特殊属性的线程13.5 互斥变量13.5.1 互斥变量的初始化和销毁13.5.2 互斥变量属性13.5.3 互斥变量的加锁与解锁13.5.4 互斥变量与spin锁13.6 读写锁13.6.1 读写锁的初始化和销毁13.6.2 读写锁的上锁与解锁13.7 条件变量13.7.1 创建和销毁条件变量13.7.2 条件变量属性13.7.3 等待条件变量13.7.4 唤醒条件变量等待13.8 思考与练习第14章 线程高级特征14.1 线程专有数据14.1.1 线程专有数据键的创建和删除14.1.2 使用线程专有数据14.2 取消线程14.2.1 线程的可取消属性14.2.2 取消线程与取消点14.2.3 异步取消的安全性14.2.4 现场清理14.3  线程调度14.3.1 线程调度竞争范围14.3.2 调度策略与优先级14.3.3 线程调度属性14.3.4 动态改变线程的调度策略和优先级14.4 线程与信号14.4.1 信号动作14.4.2 信号屏蔽14.4.3  向线程发送信号14.4.4 等待信号14.4.5 一种新的事件通知方法:sigev_thread14.5 思考与练习参考文献

内容摘要:

  《unix/linux程序设计教程》遵循最新的“统一unix规范版本4”,以linux为平台,系统地讲述了unixapi各种函数的编程方法。本书内容包括unix的发展历程与标准、标准i/o和低级i/o、文件与目录操作、进程环境与进程控制、信号处理、时间与定时、终端i/o、高级i/o、进程之间的通信、套接字与网络通信、多线程编程。  《unix/linux程序设计教程》在介绍unixapi各种函数的功能和用途的同时,清晰地阐述了它们所隐含的操作系统基本原理。书中给出了大量程序设计示例程序,有助于读者更好地掌握这些函数的功能、使用方法及编程技巧。  《unix/linux程序设计教程》特别适合于高等院校计算机专业的教师、高年级本科生、研究生作为教材和参考书,也特别适合从事计算机系统软件和应用软件开发的工程技术人员作为实用编程手册查阅。

书籍规格:

书籍详细信息
书名UNIX/Linux程序设计教程站内查询相似图书
丛书名原创精品系列
9787111403890
如需购买下载《UNIX/Linux程序设计教程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位机械工业出版社
版次1版印次1
定价(元)69.0语种简体中文
尺寸24 × 19装帧平装
页数 400 印数 4000

书籍信息归属:

UNIX/Linux程序设计教程是机械工业出版社于2013.1出版的中图分类号为 TP316.8 的主题关于 Linux操作系统-程序设计-教材 ,UNIX操作系统-程序设计-教材 的书籍。