注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统LinuxLinux程序设计

Linux程序设计

Linux程序设计

定 价:¥78.00

作 者: (英)Neil Matthew,(英)Richard Stones著;杨晓云等译
出版社: 机械工业出版社
丛编项: Wrox程序员参考系列
标 签: Linux

购买这本书可以去


ISBN: 9787111093220 出版时间: 2002-01-01 包装: 胶版纸
开本: 24cm 页数: 782页 字数:  

内容简介

  本书介绍了Linux操作系统的基本知识,以及如何在Linux和其他UNIX风格的操作系统上进行程序开发。本书的主要内容包括:Linux的入门知识,使用Shell进行程序设计,Linux的管理及开发工具,Perl程序设计语言,Web程序设计等等。本书内容丰富、深入浅出、易于理解,还包含大量编程实例。适合Linux的初学者及希望利用Linux进行开发的程序设计人员阅读。

作者简介

暂缺《Linux程序设计》作者简介

图书目录

序言
前言
第1章 入门知识 
1.1 什么是UNIX操作系统 
1.2 什么是Linux操作系统
1.3 发行版本 
1.4 GNU项目和自由软件基金会 
1.5 为Linux系统设计程序 
1.6 UNIX程序 
1.7 获得帮助 
1.8 程序开发系统的预备知识 
1.8.1 程序 
1.8.2 头文件
1.8.3 库文件
1.8.4 静态库
1.8.5 共享库
1.9 UNIX系统中程序设计的特点和原则 
1.9.1 简单性 
1.9.2 重点性 
1.9.3 可反复使用的程序组件 
1.9.4 过滤器 
1.9.5 开放的文件格式 
1.9.6 灵活适应性 
1.10 本章总结 
第2章 shell程序设计 
2.1 什么是shell 
2.2 管道和重定向
2.2.1 对输出数据进行重定向 
2.2.2 对输入数据进行重定向 
2.2.3 管道 
2.3 可以被视为程序设计语言的shell 
2.3.1 交互式程序 
2.3.2 编写脚本程序
2.3.3 把脚本设置为可执行程序 
2.4 shell程序设计的语法 
2.4.1 变量 
2.4.2 条件测试 
2.4.3 控制结构 
2.4.4 函数 
2.4.5 命令 
2.4.6 命令的执行 
2.4.7 即时文档 
2.4.8 调试脚本程序 
2.5 shell程序设计示例 
2.5.1 工作需求 
2.5.2 设计 
2.6 本章总结
第3章 如何使用和处理文件 
3.1 UNIX的文件结构 
3.1.1 目录结构 
3.1.2 文件和设备
3.2 系统调用和设备驱动程序 
3.3 库函数 
3.4 文件的底层访问 
3.4.1 write系统调用
3.4.2 read系统调用 
3.4.3 open系统调用 
3.4.4 访问权限的初始化值 
3.4.5 umask变量 
3.4.6 close系统调用 
3.4.7 ioctl系统调用 
3.4.8 其他与文件管理有关的系统调用 
3.5 标准I/O库 
3.5.1 fopen函数 
3.5.2 fread函数 
3.5.3 fwrite函数
3.5.4 fclose函数
3.5.5 fflush函数
3.5.6 fseek函数 
3.5.7 fgetc、getc、getchar函数 
3.5.8 fputc、putc、putchat函数 
3.5.9 fgets、gets函数 
3.5.10 格式化输入和输出
3.5.11 对数据流进行处理的其他函数 
3.5.12 文件流错误处理 
3.5.13 文件流和文件描述符的关系 
3.6 文件和子目录的维护 
3.6.1 chmod系统调用 
3.6.2 chown系统调用 
3.6.3 unlink、link、symlink系统调用 
3.6.4 mkdir和rmdir系统调用 
3.6.5 chdir系统调用和getcwd函数 
3.7 扫描子目录 
3.7.1 opendir函数 
3.7.2 readdir函数 
3.7.3 telldir函数 
3.7.4 seekdir函数 
3.7.5 closedir函数
3.8 错误处理 
3.9 高级论题 
3.9.1 fcntl系统调用 
3.9.2 mmap函数 
3.10 本章总结 
第4章 UNIX环境
4.1 程序参数 
4.2 环境变量 
4.2.1 环境变量的用途 
4.2.2 environ变量 
4.3 时间与日期 
4.4 临时文件 
4.5 用户的个人资料 
4.6 主机资料 
4.7 日志记录功能 
4.8 资源和限制 
4.9 本章总结 
第5章 终端 
5.1 对终端进行读写 
5.1.1 对重定向输出进行处理 
5.1.2 与终端进行“对话” 
5.2 终端驱动程序和通用终端接口 
5.2.1 概述 
5.2.2 硬件模型 
5.3 termios结构
5.3.1 输入模式 
5.3.2 输出模式 
5.3.3 控制模式 
5.3.4 本地模式 
5.3.5 特殊的控制字符 
5.3.6 终端的速度 
5.3.7 其他功能函数
5.4 终端的输出 
5.4.1 终端的类型
5.4.2 确定终端类型的方法 
5.4.3 terminfo的使用方法
5.5 检测键盘输入 
5.6 本章总结 
第6章 curses函数库 
6.1 使用curses函数库进行编译 
6.2 基本概念 
6.3 操作的初始化和结束 
6.4 向屏幕输出数据 
6.5 从屏幕读取输入数据 
6.6 清除屏幕 
6.7 移动光标 
6.8 字符的属性
6.9 键盘 
6.9.1 键盘的工作模式 
6.9.2 键盘输入 
6.10 窗口 
6.10.1 WINDOW结构 
6.10.2 通用化函数 
6.10.3 移动和刷新窗口 
6.10.4 优化窗口的刷新操作 
6.11 子窗口 
6.12 键盘上的数字小键盘 
6.13 彩色显示功能 
6.14 逻辑屏幕和显示平面 
6.15 CD唱盘管理软件 
6.16 本章总结 
第7章 数据管理 
7.1 内存管理 
7.1.1 简单的内存分配机制 
7.1.2 分配大量的内存 
7.1.3 内存的滥用 
7.1.4 空指针 
7.1.5 内存的释放 
7.1.6 其他内存分配函数 
7.2 文件封锁 
7.2.1 创建锁文件 
7.2.2 文件中的封锁区 
7.2.3 封锁状态下的读写操作 
7.2.4 文件封锁的竞争现象 
7.2.5 其他封锁命令 
7.2.6 死锁现象 
7.3 数据库 
7.3.1 dbm数据库 
7.3.2 dbm例程 
7.3.3 dbm数据库的访问函数 
7.3.4 其他dbm函数 
7.4 CD唱盘管理软件
7.5 本章总结 
第8章 开发工具 
8.1 多个源文件带来的问题 
8.2 make命令和制作文件 
8.2.1 制作文件的语法 
8.2.2 make命令的选项和参数 
8.2.3 制作文件中的注释 
8.2.4 制作文件中的宏 
8.2.5 多个制作目标 
8.2.6 内建规则 
8.2.7 后缀规则 
8.2.8 用make命令管理函数库 
8.2.9 高级论题:制作文件和下级子目录 
8.2.10 GNU的make和gcc命令 
8.3 源代码控制系统 
8.3.1 RCS系统 
8.3.2 SCCS系统
8.3.3 CVS系统 
8.4 编写使用手册 
8.5 软件的发行传播
8.5.1 patch程序 
8.5.2 软件发行方面的其他工具 
8.6 本章总结 
第9章 调试与纠错 
9.1 错误的分类 
9.1.1 功能定义错误 
9.1.2 设计规划错误 
9.1.3 代码编写错误 
9.2 常用调试技巧 
9.2.1 一个有漏洞的程序 
9.2.2 代码审查 
9.2.3 取样法 
9.2.4 程序的受控执行 
9.3 用gdb进行调试纠错
9.3.1 启动gdb 
9.3.2 运行一个程序 
9.3.3 堆栈跟踪 
9.3.4 对变量进行检查 
9.3.5 列出程序清单 
9.3.6 设置断点 
9.3.7 用调试器打补丁 
9.3.8 深入学习gdb 
9.4 其他调试工具 
9.4.1 lint:清理程序中的“垃圾” 
9.4.2 函数调用工具 
9.4.3 执行记录 
9.5 假设验证 
9.6 内存调试 
9.6.1 ElectricFence 
9.6.2 Checker 
9.7 资源 
9.8 本章总结 
第10章 进程与信号 
10.1 什么是进程 
10.2 进程的结构 
10.2.1 进程表 
10.2.2 查看进程
10.2.3 系统进程
10.2.4 进程的调度 
10.3 启动新的进程 
10.3.1 等待进程 
10.3.2 僵进程 
10.3.3 输入和输出重定向 
10.3.4 线程 
10.4 信号 
10.4.1 发送信号 
10.4.2 信号集 
10.5 本章总结 
第11章 POSIX线程 
11.1 什么是线程 
11.2 检查有无线程支持 
11.3 第一个线程程序 
11.4 同时执行 
11.5 同步 
11.5.1 用信号量进行同步 
11.5.2 用互斥量进行同步 
11.6 线程的属性 
11.6.1 detachedstate属性 
11.6.2 schedpolicy属性 
11.6.3 schedparam属性 
11.6.4 inheritsched属性
11.6.5 scope属性 
11.6.6 stacksize属性 
11.6.7 线程属性—调度
11.7 取消一个线程 
11.8 多线程 
11.9 本章总结
第12章 进程间通信:管道 
12.1 什么是管道 
12.2 进程管道 
12.2.1 popen函数 
12.2.2 pclose函数
12.2.3 把输出送往popen 
12.3 pipe函数 
12.4 父进程和子进程 
12.4.1 管道关闭后的读操作 
12.4.2 把管道用做标准输入和标准输出 
12.5 命名管道:FIFO文件 
12.6 高级论题:以FIFO文件为基础的客户/服务器架构 
12.7 CD唱盘管理软件 
12.7.1 目标 
12.7.2 实现 
12.7.3 客户接口函数 
12.7.4 服务器接口 
12.7.5 管道 
12.7.6 对CD唱盘管理软件的总结 
12.8 本章总结 
第13章 信号量、消息队列和共享内存 
13.1 信号量 
13.1.1 信号量的定义 
13.1.2 一个理论性的例子 
13.1.3 UNIX中的信号量功能
13.1.4 使用信号量 
13.1.5 信号量总结 
13.2 共享内存 
13.2.1 概述 
13.2.2 共享内存函数 
13.2.3 共享内存总结 
13.3 消息队列 
13.3.1 概述 
13.3.2 消息队列函数 
13.3.3 消息队列总结 
13.4 应用示例 
13.5 查看IPC功能状态的命令 
13.5.1 信号量 
13.5.2 共享内存 
13.5.3 消息队列 
13.6 本章总结 
第14章 套接字 
14.1 什么是套接字 
14.2 套接字连接 
14.2.1 套接字属性 
14.2.2 创建一个套接字 
14.2.3 套接字地址 
14.2.4 给套接字起名字 
14.2.5 创建套接字队列 
14.2.6 接受连接 
14.2.7 请求连接 
14.2.8 关闭一个套接字 
14.2.9 套接字通信 
14.2.10 主机字节顺序和网络字节顺序 
14.3 网络信息 
14.3.1 因特网守护进程 
14.3.2 套接字选项 
14.4 多客户 
14.5 select系统调用 
14.6 本章总结 
第15章 工具命令语言Tcl 
15.1 Tcl语言概述 
15.1.1 第一个Tcl程序 
15.1.2 Tcl命令 
15.1.3 变量和值
15.1.4 引用和替换 
15.1.5 计算 
15.1.6 控制结构 
15.1.7 错误处理 
15.1.8 字符串操作
15.1.9 数组 
15.1.10 列表
15.1.11 过程
15.1.12 输入和输出 
15.2 一个Tcl程序 
15.3 创建一个新Tcl语言 
15.4 Tcl语言的扩展 
15.4.1 expect 
15.4.2 [incr Tcl] 
15.4.3 TclX 
15.4.4 图形 
15.5 本章总结
第16章 X窗口系统的程序设计 
16.1 什么是X 
16.1.1 X服务器
16.1.2 X协议 
16.1.3 Xlib库
16.1.4 X客户 
16.1.5 X工具包
16.2 X窗口管理器 
16.3 X程序设计模型
16.3.1 启动 
16.3.2 主循环
16.3.3 退出整理 
16.4 X程序设计概述 
16.5 Tk工具包 
16.5.1 窗口程序设计概述 
16.5.2 配置文件 
16.5.3 其他命令 
16.5.4 Tk素材 
16.5.5 Tk内建的对话框 
16.5.6 颜色方案 
16.5.7 字体 
16.5.8 绑定 
16.5.9 bindtags命令 
16.5.10 几何尺寸管理
16.5.11 焦点及其切换
16.5.12 选项数据库 
16.5.13 应用程序间的通信 
16.5.14 selection命令
16.5.15 Clipboard命令
16.5.16 窗口管理器 
16.5.17 动态/静态加载 
16.5.18 Safe Tk 
16.6 一个复合素材
16.7 使用复合型树素材的应用程序 
16.8 Tk进程记录查看器 
16.8.1 国际化 
16.8.2 业界动态
16.9 本章总结 
第17章 使用GTK+进行GNOME程序设计 
17.1 GNOME简介 
17.1.1 GNOME的体系结构 
17.1.2 GNOME桌面 
17.1.3 在GNOME里利用GTk+设计程序 
17.1.4 GNOME应用程序 
17.2 本章总结 
第18章 Perl程序设计语言 
18.1 Perl语言简介 
18.1.1 “Hello”Perl程序 
18.1.2 Perl语言中的变量 
18.1.3 操作符和函数 
18.1.4 规则表达式 
18.1.5 控制结构和子例程 
18.1.6 文件的输入和输出 
18.2 一个完整的例子 
18.3 命令行上的Perl 
18.4 模块 
18.4.1 CPAN 
18.4.2 安装一个模块 
18.4.3 perldoc命令 
18.4.4 网络功能 
18.4.5 数据库 
18.5 改进版CD唱盘数据库 
18.6 本章总结 
第19章 因特网程序设计:HTML 
19.1 什么是World Wide Web 
19.2 术语 
19.2.1 超文本传输协议 
19.2.2 因特网邮件多媒体扩展 
19.2.3 标准通用置标语言 
19.2.4 文档类型定义 
19.2.5 超文本置标语言
19.2.6 可扩展置标语言
19.2.7 层叠样式表 
19.2.8 可扩展超文本置标语言 
19.2.9 统一资源定位器 
19.2.10 统一资源标识符
19.3 一个HTML文档 
19.4 深入学习HTML 
19.4.1 HTML标签 
19.4.2 图像 
19.4.3 表格 
19.4.4 锚点或超链接 
19.4.5 给图像加上锚点
19.4.6 非HTML的URL地址
19.4.7 链接到其他站点 
19.5 编写HTML文件 
19.6 HTML页面服务 
19.6.1 网络中的HTML文档 
19.6.2 设置一个服务器 
19.7 可点击图片 
19.7.1 服务器端可点击图片 
19.7.2 客户端可点击图片 
19.8 服务器端的预处理功能
19.9 编写WWW主页的技巧 
19.10 本章总结 
第20章 因特网程序设计II: CGI 
20.1 表单元素 
20.1.1 FORM标签
20.1.2 INPUT标签
20.1.3 SELECT标签
20.1.4 TEXTAREA标签 
20.2 一个主页示例 
20.3 向WWW服务器发送信息 
20.3.1 对信息进行编码 
20.3.2 服务器程序 
20.3.3 编写服务器端的CGI程序 
20.3.4 使用扩展URL的CGI程序 
20.3.5 对表单数据进行解码 
20.4 向客户返回HTML 
20.5 技巧与窍门 
20.5.1 确保CGI程序能够退出 
20.5.2 对客户进行重定向 
20.5.3 动态图形 
20.5.4 隐藏上下文信息 
20.6 一个应用程序 
20.7 应用Perl语言 
20.8 本章总结 
第21章 设备驱动程序 
21.1 设备 
21.1.1 设备的分类 
21.1.2 用户空间与内核空间 
21.2 字符设备 
21.3 字符设备驱动程序示例:Schar 
21.3.1 MSG宏命令 
21.3.2 字符设备的注册 
21.3.3 模块的使用计数 
21.3.4 open和release:设备的打开和关闭 
21.3.5 文件操作read:从设备读出数据 
21.3.6 current任务 
21.3.7 等待队列 
21.3.8 文件操作write:向设备写入数据 
21.3.9 非阻塞性读操作 
21.3.10 查找操作 
21.3.11 文件操作ioctl:I/O控制 
21.3.12 检查用户权限 
21.3.13 文件操作poll:设备对进程的调度 
21.3.14 模块的参数 
21.3.15 proc文件系统接口 
21.3.16 Schar的执行情况 
21.3.17 小结 
21.4 定时和时基:jiffies变量 
21.4.1 短暂延时 
21.4.2 定时器 
21.4.3 让出处理器 
21.4.4 任务队列 
21.4.5 预定义任务队列 
21.4.6 小结 
21.5 内存管理
21.5.1 虚拟内存区 
21.5.2 地址空间 
21.5.3 内存地址的类型 
21.5.4 在设备驱动程序里申请内存 
21.5.5 在用户空间和内核空间之间传递数据 
21.5.6 简单的内存映射 
21.5.7 I/O内存 
21.5.8 IOmap里的设备分配 
21.5.9 对I/O内存实现mmap文件操作 
21.6 I/O端口 
21.6.1 可移植性 
21.6.2 中断处理 
21.6.3 IRQ处理器
21.6.4 中断的后处理 
21.6.5 可重入性 
21.6.6 单独禁止一个中断 
21.6.7 原子化操作 
21.6.8 对关键节进行保护 
21.7 块设备 
21.7.1 一个简单的RAM盘模块:Radimo 
21.7.2 介质的更换 
21.7.3 块设备的ioctl文件操作 
21.7.4 请求函数:request 
21.7.5 缓冲区缓存 
21.7.6 小结 
21.8 调试 
21.8.1 Oops追查法 
21.8.2 对模块进行调试 
21.8.3 “魔术键” 
21.8.4 内核调试器—KDB 
21.8.5 远程调试 
21.8.6 调试工作中的注意事项 
21.9 可移植性 
21.9.1 数据类型
21.9.2 字节的存储顺序 
21.9.3 数据的对齐 
21.10 本章总结 
21.11 内核源代码解剖图 
附录A 可移植性 
附录B 自由软件基金会和GNU项目 
附录C 因特网资源 
附录D 参考书目

本目录推荐