书籍详情
LINUX编程宝典
作者:(美)John Goerzen著;魏永明[等]译;魏永明译
出版社:电子工业出版社
出版时间:2000-10-01
ISBN:9787505362109
定价:¥79.00
购买这本书可以去
内容简介
本书面向Linux系统的广大程序员,目的是提供一本详尽的编程教材和指南。本书的作者是DebianGNU/Linux发行版的主要开发者。本书主要内容包括基本编程工具的使用、C语言环境、Linux文件系统及进程模型、Linux中的进程间通信、Perl及其在CGI和数据库应用中的使用、利用Perl/Tk和GTK的图形用户界面等,还包含有对CVS(一个广泛使用的版本控制系统)、安全性以及优化等方面的描述,这些内容是目前Linux系统上进行开发的热点主题。通过阅读本书,读者不仅能够学习到Linux如何实现一些功能,同时还能掌握如何在自己的应用程序中充分发挥这些功能。本书非常适合于初级及中级Linux程序员阅读,对学习Linux编程以及操作系统的在校大学生来说,也不失为一本好书。
作者简介
暂缺《LINUX编程宝典》作者简介
目录
前言
第1部分 Shell和基本工具
第1章 Linux编程环境简介
1.1 Linux编程基本概念
1.2 Linux设计
1.3 haux文档
1.4 手册页
1.5 InfO页
1.6 pod文档
1.7 程序文档
1.8 Internet资源
1.9 小结
第2章 Shell编程简介
2.1 Bash简介
2.1.1 创建脚本
2.1.2 启动Bash
2.1.3 返回值
2.1.4 简单命令组合
2.1.5 遍配符
2.1.6 引号和转义
2I.7 注释
2.2 重定向和管道
2.2.1 输出重定向
2.2.2 输入重定向
2.2.3 管道
2.2.4 命令置换
2.3 变量
2.3.1 环境变量
2.3.2 特殊变量
2.4 函数
2.5 条件和循环
2.5.1 if.
2.5.2 使用[.]测试
2.5.3 case
2.5.4 while
2.5.5 for
2.6 Shell应用
2.7 小结
第3章 使用正则表达式
3.1 正则表达式简介
3.1.1 模式
3.1.2 正则表达式语法
3.1.3 egrep简介
3.1.4 sed简介
3.1.5 Ped中的正则表达式
3.2 理解字符类
3.3 使用量词
3.4 各选与分组
3.5 在Linux下对正则表达式的支持
3.5.1 Perl
3.5.2 sed和awk
3.5.3 C/C++
3.6 小结
第4章 Emacs简介
4.1 Emacs人门
4.1.1 Emacs键盘操作符号
4.1.2 浏览
4.1.3 搜索
4.1.4 Emacs区域
4.1.5 缓冲区
4.1.6 窗口
4.1.7 框架
4.1.8 语法和括抓高亮显示
4.2 主模式
4.2.I C模式
4.2.2 pod模式
4.2.3 其他模式
4.3 Emacs是一个IDE
4.3.l编译程序
4.3.2调试
4.3.3使用标记
4.3.4 在Emacs中的shell
4.3.5 Term模式
4.3.6 Dired
4.3.7 w3
4.3.8 Gnus
4.3.9 版本控制
4.4 获取帮助
4.5 小结
第5章 理服Linux数据文件和脚本
5.1 基本概念
5.2 文件系统层次
5.2.1 根目录
5.2.2 /dev:设备文件
5.2.3 /dtc:配置和启动文件
5.2.4 lusr:标准系统程序
5.2.5 /var:变量数据
5.3 passed和shadow文件
5.3.1 从gshell中获取账号信息
5.3.2 从C中获取账号信息
5.3.3 从Ped中获取账号信息
5.4 组文件
5.5 init文件
5.6 网络文件
5.6.1 DNS文件
5.6.2 安全性文件
5.6.3 超级服务器文件
5.7 小结
第2部分 C环境
第6章 使用gcc
6.1 使用gcc编译程序
6.1.1 警告
61.2 优化gcc
6.1.3 产生间试标记
6.2 gcc编译流程简介
6.2.1 C编译器:gcc
6.2.2 C+十细译器:g++
6.2.3 C预处理器:cpp
6.2.4 程序员礼品店
6.3 管理大型项目
6.4 使用高级gcc选项
6.4.1 指定查找路径
6.4.2 连接库
6.4.3 使用管道加速编译过程
6.4.4 使用gccx的-c选项
6.4.5 使用ANSIC
6.5 小结
第7章 使用GNU Make管理项目
7.1 GNU make简介
7.1.1 makefile规则
7.1.2 一个简单的Makefile文件
7.1.3 更巧妙的Makefile文件
7.2 使用智能的Makefile
7.2.1 两种变量类型
7.2.2 通配符:问题和解决办法
7.2.3 依赖性计算
7.3 创建其他文件
7.4 使用违归make
7.5 小结
第8重 内在管理
8.1 静态与动态内存
8.1.1 静态分配内存
8.1.2 动态分配内存
8.2 安全性和设计着眼点
8.3 高级指针
8.3.1 解析数据
8.3.2 代码分析
8.4 发现问题
8.5 小结
第9章 库和法征
9.1 库简介
9.2 创建和使用行态库
9.3 创建和使用共车库
9.4 使用高级共享库特性
9.4.l ldd工具
9.4.2 soname
9.4.3 共享库装载器
9.4.4 使用 LD_PRELOAD
9.4.5 使用 dlopen
9.5 小给
第10章 使用gdb调试
10.1 gdb需求
10.2 调试步骤
10.2.1 调试指南
10.2.2 调试其他进程
10.3 显示数据
10.3.1 使用print和display命令
10.3.2 内存检查
10.3.3 使用Printf命令
10.3.4 使用Set命令
10.4 使用断点和观察窗口
10.4.1 设置断点
10.4.2 设置观察窗口
10.5 core dump分析
10.6 命令小结
10.7 小结
第3部分 Linux型
第11章 文件、目录和设备
11.l 文件的实质
11.1.1 系统调用stat()和lstat()
11.1.2 opendir()、readdir()及其相关函数
11.2 I/O方法
11.2.l 基于流的I/O方法
11.2.2系统调用I/O方法
11.3 特殊文件
11.4 小结
第12章 Linux系统中的过程
12.1 理解进程模型
12.2 进程基础知识
12.3 启动和终止进程
12.3.1 派生的基本原理
12.3.2 执行其他程序
12.3.3 等待进程
12.3.4 一起使用
12.4 使用退回代码
12.5 进程的同步措施
12.5.1 原子操作和非原子操作
12 5 2 死锁
12.5.3 竞争条件
12.5.4 自族和忙等待,
12.6 了解安全性
12.6.1 安全性的基本知识
12.6.2 安全性秘密
12.6.3 setuid和setgid
12.6.4 setuid和setgid的负效应.
12.6.5 保证setuid和setgid的安全
12.7 小结
第13章 了解信号
13.1 信号的使用
13.2 信号处理程序
13.2.1 基本信号处理程序
13.2.2 阻塞信号
13.2.3 高级信号处理程序
13.3 信号发送
13.4 信号和系统调用
13.5 信号处理程序带来的危险
13.6 小结
第14章 Linux的I/P系统简介
14.1 程序库和系统调用
14.1.1 基于流的I/O方法
14.1.1 系统回用I/O方法
14.2 错误情况
14.2.1 使用封装的函数库
14.2.2 在读者自己的程序中使用封装函数库.
14.3 高级I/O
14.3.1 稀疏文件
14.3.2 非阻塞I/O方式
14.4 内存映射的I/O
14.5 函数调用select()和poll()
14.5.1 用select()函数
14.5.2 poll()函数
14.6 咨询锁定
14.7 小结
第15章 终端编程
15.1 终端属性
15.2 伪终端
15.3 Ncurses
15.4 小结
第4部分 与世界交流
第16章 共享内存和信号回
16.1 使用共享内存
16.2 使用信号量同步
16.3 利用共享内存通信
16.4 小结
第17章 使用管道和FIFO
17.1 建立管道
17.2 实现重定向
17.3 解决通信问题
17.4 使用FIFD
17.5 小结
第18章 Intenret套接字
18.1 TCP/IP简介
18.1.1 问题
18.1.2 解决方案
18.1.3 术语注解
18.2 TCP/IP的独特挑战
18.3 协议
18.4 寻址
18.5 客户端连接
18.6 服务器端连接
18.7 一个网络函数库
18.8 小结
第19章 高级TCP/IP套接字
19.1 服务器设计和多工化
19.2 用户数据报协议
19.3 小结
第5部分 利用Perl协同工作
第20章 Perl简介
20.1 Perl的设计思想
20.1.1 变量.:
20.1.2 数组
20.1.3 哈希表
20.2 第一步
20.3 数据结构
20.3.1 引用
20.3.2 匿名引用
20.3.3 符号引用
20.3.4 教组
20.3.5 嵌套哈希表
20.4 子例程和作用域
20.5 流控制
20.6 OOP特征
20.7 小结
第21章 利用Perl操作数据
21.1 读取数据
21.2 分析和处理数据
21.2.1 使用split
21.2.2 使用grep
21.3 保存数据
21.3.1 使用数据库
21.3.2 使用Data Dumper
21.3.3 Data Dumper选项
21.4 输出和特别考虑的问题.
21.4.1 基本输出
21.4.2 输出到文件或命令
21.4.3 open的选项
21.4.4 传送文件句柄
21.4.5 文件句柄的作用垃
21.5 小结
第22章 CGI编程
22.1 CGI与 Web
22.2 编写CGI脚本
22.3 处理无连接问题
22.4 解决性能问题
22.5 小结
第23章 利用DBI访问SQL数据库
23.1 数据库简介
23.2 使用DBI的第一步
23.3 使用SQL
23.3.1 创建表
23.3.2 播人数据
23.3.3 读取数据
23.3.4 更新表
23.3.5 删除信息
23.3.6 连接表
23.4 在应用程序中使用数据库
23.1 DBI和命令行
.4.2 DBI和CGI
23.5 小结
第6部分 使用X的图形界面
第24章 利用Perl/TK的GUI
24.1 Linux中的 GUI编程
24.1.1 XWindow系统基础
24.1.2 位置无关性
24.2 客户解剖
24.2.1 Xlib
24,2.2 构件集
24.2.3 层次化窗口
24.2.4 配置
24.3 基于事件的编程
24.4 使用MTh的第一步
24.5 对象属性
24.6 特殊对象
24.6.1 窗框
24.6.2菜单
24.6.3 文本和画布
24.7 几何管理器
24.8 特别考虑的问题
24.9 SpecTcl/SpectPerl
24.10 小结
第25章 利用GNM建立GUI
25.1 使用GNOME组件
25.2 第一步
25.3 绘制窗口
25.4 其他GNOME注解
25.5 小结
第7部分 将一切组织起来
第26章 利用CVS管理归档和协作
26.1 CVS简介
26.2 建立仓库
26.3 CVS的日常使用
26.4 使用标记和分支
26.4.1 标记
26.4.2 分支
26.5 访问网络
26.5.1 设置服务器.
26.5.2 生成ssh键
26.5.3 环境变量
26.6 技巧和诀窍
26.6.1 关键词
26.6.2 二进制文件
26.6.3 使用于目录
26.6.4 CVSROOT文件
26.7 小结
第27章 理解安全性和代码
27.1 好代码的重要性
27.Z Linux安全性概览
27.2.1 验证
27.2.2 访问控制
27.3 安全性的指导方针
P.3.1 安全性原则
27.3.2 常见问题
27.3.3 编写安全代码
27.4 小结
第28章 代化性能
28.1 更快代码的原则
28.1.1 三种度量
28.1.2 循环
28.1.3 帮助优化器
28.1.4 避免浮点数
28.1.5 重新钢写时间关键代码块
28.1.6 增加块大小
28.2 高价操作和廉价操作
28.2.1 系统调用
28.2.2 fork
28.2.3 exec
28.2.4 system
28.3 编译器代化
28.4 使用gpfor
28.5 小结
第1部分 Shell和基本工具
第1章 Linux编程环境简介
1.1 Linux编程基本概念
1.2 Linux设计
1.3 haux文档
1.4 手册页
1.5 InfO页
1.6 pod文档
1.7 程序文档
1.8 Internet资源
1.9 小结
第2章 Shell编程简介
2.1 Bash简介
2.1.1 创建脚本
2.1.2 启动Bash
2.1.3 返回值
2.1.4 简单命令组合
2.1.5 遍配符
2.1.6 引号和转义
2I.7 注释
2.2 重定向和管道
2.2.1 输出重定向
2.2.2 输入重定向
2.2.3 管道
2.2.4 命令置换
2.3 变量
2.3.1 环境变量
2.3.2 特殊变量
2.4 函数
2.5 条件和循环
2.5.1 if.
2.5.2 使用[.]测试
2.5.3 case
2.5.4 while
2.5.5 for
2.6 Shell应用
2.7 小结
第3章 使用正则表达式
3.1 正则表达式简介
3.1.1 模式
3.1.2 正则表达式语法
3.1.3 egrep简介
3.1.4 sed简介
3.1.5 Ped中的正则表达式
3.2 理解字符类
3.3 使用量词
3.4 各选与分组
3.5 在Linux下对正则表达式的支持
3.5.1 Perl
3.5.2 sed和awk
3.5.3 C/C++
3.6 小结
第4章 Emacs简介
4.1 Emacs人门
4.1.1 Emacs键盘操作符号
4.1.2 浏览
4.1.3 搜索
4.1.4 Emacs区域
4.1.5 缓冲区
4.1.6 窗口
4.1.7 框架
4.1.8 语法和括抓高亮显示
4.2 主模式
4.2.I C模式
4.2.2 pod模式
4.2.3 其他模式
4.3 Emacs是一个IDE
4.3.l编译程序
4.3.2调试
4.3.3使用标记
4.3.4 在Emacs中的shell
4.3.5 Term模式
4.3.6 Dired
4.3.7 w3
4.3.8 Gnus
4.3.9 版本控制
4.4 获取帮助
4.5 小结
第5章 理服Linux数据文件和脚本
5.1 基本概念
5.2 文件系统层次
5.2.1 根目录
5.2.2 /dev:设备文件
5.2.3 /dtc:配置和启动文件
5.2.4 lusr:标准系统程序
5.2.5 /var:变量数据
5.3 passed和shadow文件
5.3.1 从gshell中获取账号信息
5.3.2 从C中获取账号信息
5.3.3 从Ped中获取账号信息
5.4 组文件
5.5 init文件
5.6 网络文件
5.6.1 DNS文件
5.6.2 安全性文件
5.6.3 超级服务器文件
5.7 小结
第2部分 C环境
第6章 使用gcc
6.1 使用gcc编译程序
6.1.1 警告
61.2 优化gcc
6.1.3 产生间试标记
6.2 gcc编译流程简介
6.2.1 C编译器:gcc
6.2.2 C+十细译器:g++
6.2.3 C预处理器:cpp
6.2.4 程序员礼品店
6.3 管理大型项目
6.4 使用高级gcc选项
6.4.1 指定查找路径
6.4.2 连接库
6.4.3 使用管道加速编译过程
6.4.4 使用gccx的-c选项
6.4.5 使用ANSIC
6.5 小结
第7章 使用GNU Make管理项目
7.1 GNU make简介
7.1.1 makefile规则
7.1.2 一个简单的Makefile文件
7.1.3 更巧妙的Makefile文件
7.2 使用智能的Makefile
7.2.1 两种变量类型
7.2.2 通配符:问题和解决办法
7.2.3 依赖性计算
7.3 创建其他文件
7.4 使用违归make
7.5 小结
第8重 内在管理
8.1 静态与动态内存
8.1.1 静态分配内存
8.1.2 动态分配内存
8.2 安全性和设计着眼点
8.3 高级指针
8.3.1 解析数据
8.3.2 代码分析
8.4 发现问题
8.5 小结
第9章 库和法征
9.1 库简介
9.2 创建和使用行态库
9.3 创建和使用共车库
9.4 使用高级共享库特性
9.4.l ldd工具
9.4.2 soname
9.4.3 共享库装载器
9.4.4 使用 LD_PRELOAD
9.4.5 使用 dlopen
9.5 小给
第10章 使用gdb调试
10.1 gdb需求
10.2 调试步骤
10.2.1 调试指南
10.2.2 调试其他进程
10.3 显示数据
10.3.1 使用print和display命令
10.3.2 内存检查
10.3.3 使用Printf命令
10.3.4 使用Set命令
10.4 使用断点和观察窗口
10.4.1 设置断点
10.4.2 设置观察窗口
10.5 core dump分析
10.6 命令小结
10.7 小结
第3部分 Linux型
第11章 文件、目录和设备
11.l 文件的实质
11.1.1 系统调用stat()和lstat()
11.1.2 opendir()、readdir()及其相关函数
11.2 I/O方法
11.2.l 基于流的I/O方法
11.2.2系统调用I/O方法
11.3 特殊文件
11.4 小结
第12章 Linux系统中的过程
12.1 理解进程模型
12.2 进程基础知识
12.3 启动和终止进程
12.3.1 派生的基本原理
12.3.2 执行其他程序
12.3.3 等待进程
12.3.4 一起使用
12.4 使用退回代码
12.5 进程的同步措施
12.5.1 原子操作和非原子操作
12 5 2 死锁
12.5.3 竞争条件
12.5.4 自族和忙等待,
12.6 了解安全性
12.6.1 安全性的基本知识
12.6.2 安全性秘密
12.6.3 setuid和setgid
12.6.4 setuid和setgid的负效应.
12.6.5 保证setuid和setgid的安全
12.7 小结
第13章 了解信号
13.1 信号的使用
13.2 信号处理程序
13.2.1 基本信号处理程序
13.2.2 阻塞信号
13.2.3 高级信号处理程序
13.3 信号发送
13.4 信号和系统调用
13.5 信号处理程序带来的危险
13.6 小结
第14章 Linux的I/P系统简介
14.1 程序库和系统调用
14.1.1 基于流的I/O方法
14.1.1 系统回用I/O方法
14.2 错误情况
14.2.1 使用封装的函数库
14.2.2 在读者自己的程序中使用封装函数库.
14.3 高级I/O
14.3.1 稀疏文件
14.3.2 非阻塞I/O方式
14.4 内存映射的I/O
14.5 函数调用select()和poll()
14.5.1 用select()函数
14.5.2 poll()函数
14.6 咨询锁定
14.7 小结
第15章 终端编程
15.1 终端属性
15.2 伪终端
15.3 Ncurses
15.4 小结
第4部分 与世界交流
第16章 共享内存和信号回
16.1 使用共享内存
16.2 使用信号量同步
16.3 利用共享内存通信
16.4 小结
第17章 使用管道和FIFO
17.1 建立管道
17.2 实现重定向
17.3 解决通信问题
17.4 使用FIFD
17.5 小结
第18章 Intenret套接字
18.1 TCP/IP简介
18.1.1 问题
18.1.2 解决方案
18.1.3 术语注解
18.2 TCP/IP的独特挑战
18.3 协议
18.4 寻址
18.5 客户端连接
18.6 服务器端连接
18.7 一个网络函数库
18.8 小结
第19章 高级TCP/IP套接字
19.1 服务器设计和多工化
19.2 用户数据报协议
19.3 小结
第5部分 利用Perl协同工作
第20章 Perl简介
20.1 Perl的设计思想
20.1.1 变量.:
20.1.2 数组
20.1.3 哈希表
20.2 第一步
20.3 数据结构
20.3.1 引用
20.3.2 匿名引用
20.3.3 符号引用
20.3.4 教组
20.3.5 嵌套哈希表
20.4 子例程和作用域
20.5 流控制
20.6 OOP特征
20.7 小结
第21章 利用Perl操作数据
21.1 读取数据
21.2 分析和处理数据
21.2.1 使用split
21.2.2 使用grep
21.3 保存数据
21.3.1 使用数据库
21.3.2 使用Data Dumper
21.3.3 Data Dumper选项
21.4 输出和特别考虑的问题.
21.4.1 基本输出
21.4.2 输出到文件或命令
21.4.3 open的选项
21.4.4 传送文件句柄
21.4.5 文件句柄的作用垃
21.5 小结
第22章 CGI编程
22.1 CGI与 Web
22.2 编写CGI脚本
22.3 处理无连接问题
22.4 解决性能问题
22.5 小结
第23章 利用DBI访问SQL数据库
23.1 数据库简介
23.2 使用DBI的第一步
23.3 使用SQL
23.3.1 创建表
23.3.2 播人数据
23.3.3 读取数据
23.3.4 更新表
23.3.5 删除信息
23.3.6 连接表
23.4 在应用程序中使用数据库
23.1 DBI和命令行
.4.2 DBI和CGI
23.5 小结
第6部分 使用X的图形界面
第24章 利用Perl/TK的GUI
24.1 Linux中的 GUI编程
24.1.1 XWindow系统基础
24.1.2 位置无关性
24.2 客户解剖
24.2.1 Xlib
24,2.2 构件集
24.2.3 层次化窗口
24.2.4 配置
24.3 基于事件的编程
24.4 使用MTh的第一步
24.5 对象属性
24.6 特殊对象
24.6.1 窗框
24.6.2菜单
24.6.3 文本和画布
24.7 几何管理器
24.8 特别考虑的问题
24.9 SpecTcl/SpectPerl
24.10 小结
第25章 利用GNM建立GUI
25.1 使用GNOME组件
25.2 第一步
25.3 绘制窗口
25.4 其他GNOME注解
25.5 小结
第7部分 将一切组织起来
第26章 利用CVS管理归档和协作
26.1 CVS简介
26.2 建立仓库
26.3 CVS的日常使用
26.4 使用标记和分支
26.4.1 标记
26.4.2 分支
26.5 访问网络
26.5.1 设置服务器.
26.5.2 生成ssh键
26.5.3 环境变量
26.6 技巧和诀窍
26.6.1 关键词
26.6.2 二进制文件
26.6.3 使用于目录
26.6.4 CVSROOT文件
26.7 小结
第27章 理解安全性和代码
27.1 好代码的重要性
27.Z Linux安全性概览
27.2.1 验证
27.2.2 访问控制
27.3 安全性的指导方针
P.3.1 安全性原则
27.3.2 常见问题
27.3.3 编写安全代码
27.4 小结
第28章 代化性能
28.1 更快代码的原则
28.1.1 三种度量
28.1.2 循环
28.1.3 帮助优化器
28.1.4 避免浮点数
28.1.5 重新钢写时间关键代码块
28.1.6 增加块大小
28.2 高价操作和廉价操作
28.2.1 系统调用
28.2.2 fork
28.2.3 exec
28.2.4 system
28.3 编译器代化
28.4 使用gpfor
28.5 小结
猜您喜欢