鱼C论坛

 找回密码
 立即注册
查看: 3159|回复: 3

[C] 【进阶】《Linux程序设计》(第4版)

[复制链接]
最佳答案
215 
发表于 2016-11-18 17:43:52 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

8 f. B+ G6 \3 C# D" n" p* d8 y8 q4 G) @7 v
书名:《Linux程序设计》7 P7 V% c1 x+ C; _! [
作者:马修 (Neil Matthew),斯通斯 (Richard Stones)8 z. Z4 [2 a3 k: ^9 u
译者:陈健,宋健建
8 \, t. X  r" P% d6 q出版社:人民邮电出版社
5 \& I1 |; i" v8 a; H% m出版年:2010年6月1日(第4版)+ V, q/ n& u% R2 T( f5 S
定价:99.00元
8 J- T2 ^7 W: T, k" N装帧:平装
* ~" X4 [6 b) o4 E% x+ C6 c& ^ISBN:9787115228215
, y8 G8 j2 s; R$ D
' |; x$ W' `7 a: D5 @  r购买链接:9 J( m! A+ Y+ s0 z) _2 g: @8 g

& ]( D$ s; Y7 _, k8 ^1 N/ c4 _- e% Y

6 `( E+ m- g' s# w8 V$ b. s亚马逊(Kindle)-> 传送门
" z( a, b& \" p" @  x6 S- v, n' x) W/ [4 a! j0 Y: {
亚马逊 -> 传送门
; k/ K1 t. ?/ V3 j# C
" e% U! o9 V  \! o/ t当当网 -> 传送门' M7 @8 H2 k# H) C) `3 e6 @2 w

: \% ^9 b- d& w/ f* f" U京东 -> 传送门
# b5 @9 ?" N0 P5 N7 v% h, J3 s5 _- ^' g: e
天猫 -> 传送门
9 @3 q3 [& v/ U( o* F2 H' e
3 S8 l/ X/ f" Q3 i% U
* T; v. s7 B# \3 A内容简介:  g. U4 X7 z" c9 n

0 \- h, {" }2 `5 c
7 L* S7 |; G9 W" [7 L2 G9 d2 t
《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。
. o, X8 [' _5 z# g  l; W3 h7 x' [+ x3 E' V) a
《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
1 T6 s. I8 [! P, {2 t7 |, E; i' w
, N- i% |6 l& M$ U* O  X
( S* p. d' Y8 Y% o目录:
5 ^1 c  L2 b+ e* T1 G% B( K  a7 h) O. Z; f0 v5 F4 C


9 L9 a- u. j! s+ J: p4 f第1章 入门 1& e3 w  p- ~. Y* N' e$ e, N
+ \$ h3 Z- Z1 M) U  I
1.1 UNIX、Linux和GNU简介 1: i- j+ o2 I6 n$ U6 j$ j5 p, r  M% Z5 R
1.1.1 什么是UNIX 1
4 O5 d6 ?$ I+ H' e+ x1.1.2 什么是Linux 2
, _, n7 a) |& C6 ?4 J1.1.3 GNU项目和自由软件基金会 3
8 Y$ P( u: A( O$ X+ I! T1.1.4 Linux发行版 3
- k& {5 y$ r+ }7 U# i# w1.2 Linux程序设计 4' W  X2 u% D" f' C
1.2.1 Linux程序 4' d( a$ h6 C, U. ?
1.2.2 文本编辑器 5
% u; ?( g, t. Y2 ^1.2.3 C语言编译器 5; S4 u$ q( b" z" y. J/ X
1.2.4 开发系统导引 7
3 [8 H4 Z1 A: v; [9 |6 }1.3 获得帮助 12& g4 d& A: [  P9 d) V
1.4 小结 14
2 [' y( B, W/ Q+ s: A* m3 o ! Y+ N# K' p7 ^% e; y4 f
第2章 shell程序设计 15# H1 r& ^0 u) ~6 k5 b/ Q
* i. j  X/ ]9 v% F, Z0 T% C1 y; N
2.1 为什么使用shell编程 15" u' X- k- \* L$ t) W5 |
2.2 一点哲学 16
% x3 Y9 X% c* j  f1 `6 H) u1 i2.3 什么是shell 16
0 }2 q0 `1 g6 P% D4 V2 a1 a2.4 管道和重定向 18# L  `( P: b# L
2.4.1 重定向输出 18
& k; `: W7 P* }. Z2.4.2 重定向输入 194 w; `' C4 u4 e: g  K
2.4.3 管道 19
0 ~, K$ {; R# S& s% G: ?0 m4 K; t2.5 作为程序设计语言的shell 20
7 u/ s: I* B2 i; q+ q0 [2.5.1 交互式程序 20
6 C  U9 [. g( p/ g$ V2.5.2 创建脚本 21
9 G3 }9 i! W" T8 O2.5.3 把脚本设置为可执行 22
9 F2 e% z) p' X- q; n; J# N; y2.6 shell的语法 23
' o/ e6 |8 q: K/ `( G8 h$ U2.6.1 变量 23$ H! M% N" q7 I5 g
2.6.2 条件 27
& J. u; ~* _5 m0 f) @0 a2.6.3 控制结构 29& F8 b. K6 K% ?$ P* ?8 s0 ^1 D
2.6.4 函数 39
  L# P! f- |( R4 P3 Z8 \4 B) p9 g0 y2.6.5 命令 425 L+ d5 N/ w: X" h) y
2.6.6 命令的执行 58
# j# d" _0 G8 ^; ^( ^2.6.7 here文档 611 x+ g, K( Q# T* E3 e
2.6.8 调试脚本程序 63' P3 Y9 a6 g  _' Y# P5 l3 d$ `
2.7 迈向图形化:dialog工具 63
, j+ K1 u+ e1 u1 r, R2.8 综合应用 68: I+ ^3 e% K* u, m7 S$ r
2.8.1 需求 68, q+ u5 N1 _- F* t$ J& u7 p  B
2.8.2 设计 68" M2 {' K( s% B; T% e2 i1 l
2.8.3 应用程序的说明 76
; N) n' g, p7 l, r2 n2.9 小结 775 s9 `; O0 H" A

" A8 n3 K. B% ]! D% r" M  y第3章 文件操作 78
" U% L' c( k2 f4 ~- m& |0 f/ y5 O
6 M; ?1 O5 Q+ l" L. \3.1 Linux文件结构 78
  g3 M8 o4 g( H6 @3.1.1 目录 799 e8 R/ [  X& d% z
3.1.2 文件和设备 79/ I7 d* ~% z7 W1 ?
3.2 系统调用和设备驱动程序 80
2 n: G7 H+ W$ A6 @; E0 g3 N4 _% K' q3.3 库函数 81
1 D' G; j# V, \% [: Z- c* ]3.4 底层文件访问 82
2 ^, A3 X; o9 o% H3.4.1 write系统调用 82
6 s1 J3 }. m( {4 q! v# y- n3.4.2 read系统调用 83$ V/ @; h% C! e+ m4 P+ L
3.4.3 open系统调用 84
7 [( z# V3 ?$ Q# ?* D- ~3.4.4 访问权限的初始值 85
+ p1 N* h0 N) {  y- l3.4.5 其他与文件管理有关的系统调用 88* J& k" D, _' i1 M
3.5 标准I/O库 91
, g/ }- Y' P4 ^" w4 q0 f3.5.1 fopen函数 916 O3 c" L6 L8 d% M
3.5.2 fread函数 929 a  v: @9 p" c$ g& N* X2 y
3.5.3 fwrite函数 92* t3 X: O1 ]6 b9 z+ n" B( c
3.5.4 fclose函数 92
+ N# j/ F8 C; E* l" J3.5.5 fflush函数 93! D7 D: p$ k8 \5 K3 l
3.5.6 fseek函数 93
0 t! Y. |; E& r; Z$ W% R, M3 @3.5.7 fgetc、getc和getchar函数 930 v) X4 Y( f8 Z; L9 U. L: M5 f
3.5.8 fputc、putc和putchar函数 945 b6 w1 [" t9 j& q# S
3.5.9 fgets和gets函数 940 _2 M* @0 J: O1 L: B  `
3.6 格式化输入和输出 94
/ M8 }0 H1 ~. }9 \/ G% n0 Q3.6.1 printf、fprintf和sprintf函数 94+ M8 L" w4 R' W" z* n
3.6.2 scanf、fscanf和sscanf函数 96
, H8 V9 f7 O( K& j& _3.6.3 其他流函数 98
6 L* a/ v% F  }! l+ u1 F: G& h3.6.4 文件流错误 99
( B3 O) M* }( T3.6.5 文件流和文件描述符 997 S6 x+ D7 \& ?! O0 u2 K
3.7 文件和目录的维护 100
* r# |# x) v% R( A. z/ z3.7.1 chmod系统调用 100
( ]* `& e8 u. |/ A& f+ M1 B6 k3.7.2 chown系统调用 100
' W) p8 t1 \5 m3 U3.7.3 unlink、link和symlink系统调用 100/ c, V" {9 j0 q* ?8 C
3.7.4 mkdir和rmdir系统调用 1015 _8 G* ~$ P8 v
3.7.5 chdir系统调用和getcwd函数 101+ \+ h& i9 y" A# D$ v0 V  `
3.8 扫描目录 102
' ^7 h/ ^4 Q# Q5 Y* q6 y  B! ^' i3.8.1 opendir函数 102
1 g. w$ @6 m9 A$ {+ X, h3.8.2 readdir函数 1026 H- u! h) _, s
3.8.3 telldir函数 103
% o" z8 f) x6 K# l9 j3.8.4 seekdir函数 103" b$ ]8 W8 h* P6 G
3.8.5 closedir函数 103
% w4 h8 g' l  R) f5 v: K, V3.9 错误处理 106, H- O# n$ D) a' k" i( }7 L
3.9.1 strerror函数 106/ Z8 s$ m; c/ @0 Z: [* v5 }3 t# N
3.9.2 perror函数 106
5 \( o' R% W' e. x3.10 /proc文件系统 107( ?" T; h+ W) `. u
3.11 高级主题:fcntl和mmap 110  P( ]  Z" G4 k% w
3.11.1 fcntl系统调用 110( g4 H2 y5 H! e/ B! k  f4 k
3.11.2 mmap函数 111" t7 H' A+ P8 ~6 b, {
3.12 小结 113
& v( p) R5 L8 r- w6 Q& B/ V8 b- }  O5 h
第4章 Linux环境 1140 \( m- H: _# T4 i" h# \' ?3 g0 f9 Y

) Q* }+ P; d+ q* ~/ p1 P' H# [$ ?4.1 程序参数 114
! S+ h7 M6 ?$ ~7 B7 g; u1 I4.1.1 getopt 116) @2 o  n  z/ z$ H1 _% k% |5 M
4.1.2 getopt_long 118% {$ J6 m# v  H6 Z" {% w( n
4.2 环境变量 120
" E( S1 N  ?! N* L0 K) i( {  k0 B4.2.1 环境变量的用途 122. o2 l2 F, r6 a5 {! ~% ]' L
4.2.2 environ变量 122) E/ r0 O3 A, J
4.3 时间和日期 123
5 U/ h1 g) [7 G% z; D* r4.4 临时文件 129* Z$ E* @3 t+ m3 w! G8 h
4.5 用户信息 1315 |* M9 B. ^. y- i
4.6 主机信息 134) ^9 ~6 m" W' H# W# `8 `' b
4.7 日志 135
( y( w! Q2 r: V- M4 d/ Z4.8 资源和限制 139+ O8 k9 }- F% K; l  O7 _
4.9 小结 143
+ L" B, ?0 G5 e) A7 T1 ~7 `( Q! p % k9 d& e; X. b( S) T! @
第5章 终端 144) f% s" \: w) b$ ~. F% ~! I
7 a# K1 f! i4 g1 U
5.1 对终端进行读写 144
7 q. E) C5 w2 ^# i4 C5.2 与终端进行对话 149
0 c) o/ D6 B( B7 n5.3 终端驱动程序和通用终端接口 151
, n2 l0 W- j  V4 {3 h5.3.1 概述 151( _4 |, ~) e: d* B0 \1 Q
5.3.2 硬件模型 151
: D) n# P- G7 g: ~& u* F7 E( x5.4 termios结构 152
( [% b9 M5 j* g9 e2 F5.4.1 输入模式 153
3 \2 G" g* N, T* ]5.4.2 输出模式 1547 m9 M1 f+ `4 `1 V1 ]
5.4.3 控制模式 155; D- Z2 w$ {" [9 g1 g
5.4.4 本地模式 155' L3 M% t* y  n2 H/ V7 A, ~3 f
5.4.5 特殊控制字符 155
$ j3 Q" t* ?0 b& {; j- x  B' k5.4.6 终端速度 158
! z( u( S; O7 g1 u) ~5.4.7 其他函数 1594 L9 k3 j% Y( v* b# p* }% {3 _
5.5 终端的输出 162
" G7 H% ]! Y$ Z$ @( i3 _5.5.1 终端的类型 1639 w6 a4 K6 Y7 h1 u$ y- w
5.5.2 识别终端类型 163/ u& S" ]) U7 U- v5 B
5.5.3 使用terminfo功能标志 165  @1 @/ _: y, X* m- \0 e
5.6 检测击键动作 1706 E- Y! w9 @$ n2 R- \9 g* c% V
5.7 虚拟控制台 1724 i- E4 ^5 p! C( L) N
5.8 伪终端 173
3 K: r0 M+ a- N' [9 m5.9 小结 174
$ }+ U! o7 `5 d) ?/ \: l2 }: J0 Y 5 O4 Z- v% x% m5 R0 R. ?" ]
第6章 使用curses函数库管理基于文本的屏幕 1754 F1 P/ k2 Q/ }# z) m
4 k1 ~+ W9 E# K1 T" K+ n; e
6.1 用curses函数库进行编译 175
* Y2 b" t: v/ Q& S; ?+ `0 u6.2 curses术语和概念 176; D, B$ D, X; `# e# I8 ?  I: O3 `/ j
6.3 屏幕 1785 g- D$ D! ]% E- i
6.3.1 输出到屏幕 179) f1 J" B: \0 u6 C) @; z( K" }
6.3.2 从屏幕读取 180
$ B1 y/ X9 W& f  ?% A5 V6.3.3 清除屏幕 1809 V9 y# w1 J2 L: h
6.3.4 移动光标 180
5 `# y) N2 |+ s  {1 q5 r8 i6.3.5 字符属性 181/ V2 C( |2 X6 s( [" O! Z
6.4 键盘 183
7 E+ B1 l0 H0 M# `7 a1 A4 v, q6.4.1 键盘模式 183
: p8 K8 b, J7 k0 ?' M6.4.2 键盘输入 184
) k- K2 y( |' Y% n2 g; I6.5 窗口 185; i# }9 g) H$ @' s. W  M
6.5.1 WINDOW结构 185
0 W: i! j  U( M+ B% X/ z% ~6.5.2 通用函数 1867 n& @* I+ s0 _' _! G
6.5.3 移动和更新窗口 1873 }0 }  \+ j5 V, g/ O) c) N# [
6.5.4 优化屏幕刷新 190. Z& E& q6 h- X, X  k$ k7 P% `# W
6.6 子窗口 1912 T% T1 p& [3 |3 H$ U
6.7 keypad模式 193, D) {* }+ r! M" q. b! ]! C
6.8 彩色显示 195
* Z, R' x& Y- I: R& S0 _" K% E. ?6.9 pad 198- O8 Z& T9 l% H3 n
6.10 CD唱片应用程序 200
" c1 d( {& U! A) X- M: x6.10.1 新CD唱片应用程序的开始部分 200
7 r+ H; E* }5 E: }% [6.10.2 main函数 202
7 \3 I! F8 ^+ Q# L# H! ]6.10.3 建立菜单 203; s2 P3 g2 O& p. R
6.10.4 操作数据库文件 2048 X) o7 L- i" t9 B' I" z/ j: A5 |
6.10.5 查询CD数据库 209
; Y1 Y+ D( i, E6 J1 W) W0 ^6.11 小结 213. k3 t9 ]9 i) F5 |$ P, R
6 g, L: {& g% Y. W) J
第7章 数据管理 214; E8 \' G, P9 m/ ]& X" a/ j

* j! ^5 |) u# I9 i) E* W. C7.1 内存管理 214! U; `! H0 C( M
7.1.1 简单的内存分配 2140 Z' |7 P5 U1 C$ v! _
7.1.2 分配大量的内存 215$ C5 ~9 T# F, a% T# I8 S; ?+ W
7.1.3 滥用内存 218
8 Z! t3 }4 Y" F- u3 i7 S, U% O9 Q' l7.1.4 空指针 219
% Q! @& [# |/ [7 i! U0 Q$ m7.1.5 释放内存 220
0 N6 y5 }1 W9 X1 I: j: v2 N7.1.6 其他内存分配函数 221* A, n& S' q8 j! t6 F. N$ ^- u
7.2 文件锁定 222
' x- w( d% v! x$ U* X0 A+ I- y7.2.1 创建锁文件 222
: \4 M! M, b8 a3 o) A' h8 y- D7.2.2 区域锁定 225
1 m  _" Y6 ?3 v1 b9 g, c7.2.3 锁定状态下的读写操作 2275 f5 e* G) r3 x# T5 B5 c
7.2.4 文件锁的竞争 232
: q! K8 d# N5 d, t( i# C) ^7.2.5 其他锁命令 236
, T- E; a8 _  V- {7.2.6 死锁 236
: `0 T+ e2 s! n$ n; S8 q7.3 数据库 237
1 p! y! g4 K2 D& _* W8 k" v7.3.1 dbm数据库 237! ?" c6 Z" u3 g3 A" e1 E6 G" ?3 n
7.3.2 dbm例程 238
, \+ h, v7 h1 Q4 \( m. m0 w5 X' J7.3.3 dbm访问函数 2398 K/ E9 ~& S. G0 Q" q9 o$ q  m
7.3.4 其他dbm函数 242% g) u5 s8 R- t' G# Y
7.4 CD唱片应用程序 244
! i4 C2 y, ?+ `8 q+ `3 V7.4.1 更新设计 244
1 U. N" _4 \9 ^4 o7.4.2 使用dbm数据库的CD唱片应用程序 245% b0 v$ g# j6 x
7.5 小结 262) N: X. L' m3 A! w+ X5 [9 k# }
; _; v9 d# e! y% Z
第8章 MySQL 2636 n! e- H9 U. ^7 o1 O& V/ e* l0 D
5 J) ?1 }" U5 Z2 Z
8.1 安装 263; R) W) y5 w# Y5 C  T! A, j5 A9 H9 }
8.1.1 MySQL软件包 264
! ^, c" L! [4 h& r: `+ t4 \' A+ G8.1.2 安装后的配置 266% j( H+ r& w. s1 G6 P
8.1.3 安装后的故障修复 270& S$ s4 ^3 ~$ @* O) g% ~" N
8.2 MySQL管理 270; ~# Q: j9 v* O( I) ~  `0 l. S
8.2.1 命令 270
  l5 S# m0 }' g0 V( N9 j8.2.2 创建用户并赋予权限 274$ ?( l1 V$ C9 \8 _3 ~" F. G6 e. b
8.2.3 密码 276% y1 Q  ^& Y# ?
8.2.4 创建数据库 276
' H9 K* V& Z2 R0 g3 O, J8.2.5 数据类型 277) l+ u8 r. H# ], V" Q" ?
8.2.6 创建表 278
$ X  Y+ n2 a* o- g, t2 v" ^! M8.2.7 图形化工具 280
# p9 |' t: O$ K' C2 e8.3 使用C语言访问MySQL数据 283* I' V0 I" Y6 `4 J4 n: g
8.3.1 连接例程 283) v# p, }, V8 K0 V- \0 C6 E  c; [+ O: j
8.3.2 错误处理 287
0 F0 W$ q7 v$ w: k8 y8.3.3 执行SQL语句 2888 S+ S5 F; w6 ~, a* O
8.3.4 更多的函数 301
/ P+ d: M# j( o' z( X# b& J. C8.4 CD数据库应用程序 301
1 E* ?5 a* s* [3 m8.4.1 创建表 302
. O( I. r5 [. E- B8.4.2 添加数据 3040 G9 I! @9 s9 }; |, [% k
8.4.3 使用C语言访问数据 306
) X, A' A( N% ^/ M9 a) a& I& o8.5 小结 316" C5 J9 q  K1 B8 l# `
; n) ~! b& I5 B. E7 h# [
第9章 开发工具 317. R: F+ l# ~! H- l+ m! F$ A
2 b$ E6 b) d2 n% F9 [
9.1 多个源文件带来的问题 317: e% B. A' s$ e$ V
9.2 make命令和makefile文件 3184 {0 w6 ?  B$ H
9.2.1 makefile的语法 318
; V% M0 ?' p# X+ o9.2.2 make命令的选项和参数 318
$ @. O* v! w" @' C" E9.2.3 makefile文件中的注释 3218 j; r+ q- [3 L' x
9.2.4 makefile文件中的宏 321
2 @; {( h  u+ \) i* L9.2.5 多个目标 323
% j' F4 W3 |$ [" R( v2 F/ S  O% ^6 J9.2.6 内置规则 325
" A* H- U6 Z; V9.2.7 后缀和模式规则 326
& J# ?! B$ U1 e1 K8 C' f9.2.8 用make管理函数库 327
$ c8 Y4 Y1 P$ _; ]( P% \$ `9.2.9 高级主题:makefile文件和子目录 329" f# s  F) N0 [, Z" Z
9.2.10 GNU make和gcc 329
2 L& L$ E5 Y: Y9.3 源代码控制 330
9 p. o4 f) Q6 U' k7 z5 _' o2 b9.3.1 RCS 331( X& k( n, p+ B; g  @
9.3.2 SCCS 336
2 ~2 G' g# q& k# Z9.3.3 RCS和SCCS的比较 3366 j0 o& [" {- _  D  T0 }* t2 _9 |8 @
9.3.4 CVS 337
. T1 W2 U: P1 u6 F, E" G9.3.5 CVS的前端程序 340
: E9 r3 \0 Y! O" }2 Y" g$ c9.3.6 Subversion 341
" n  ~$ K+ E& T. l0 T7 W( _9.4 编写手册页 342
- S+ ~7 B8 V2 k  p% b& k  ?9.5 发行软件 345
% _( B% j: r) |9.5.1 patch程序 345  u% N  T' w) U5 {. U
9.5.2 其他软件发行工具 347
" d! K5 O7 S1 i9.6 RPM软件包 3492 S; G8 ^. D& q3 v5 F6 [. e5 g
9.6.1 使用RPM软件包文件 349
0 i/ X9 t& ]( ^$ M' |: y9.6.2 安装RPM软件包 350
# G& {, N7 k% l4 s6 s9.6.3 创建RPM软件包 350
" n; j0 }: O% E" c+ s9.7 其他软件包格式 3584 Z4 E# \) Q' G' B! `
9.8 开发环境 358
" P( h# q* m# r2 M+ K: l6 l/ W  {9.8.1 KDevelop 3584 G/ K6 q5 \% {* m0 w; @
9.8.2 其他开发环境 360
$ G9 Z/ W+ s0 X: s" Z$ n! A3 r9.9 小结 360: o- @& b. E- S% L- E' v3 p# V( i
. L; P: }. B5 A$ m
第10章 调试 361
0 `4 {5 ^; g: E) @& u9 s* b, p4 k/ e+ |
10.1 错误类型 3611 k/ T# W) A8 n+ G8 d
10.2 常用调试技巧 362& W$ t, }; _3 T) y6 Q; h0 G
10.2.1 有漏洞的程序 362
8 q" U  `& Q3 M10.2.2 代码检查 364
$ p1 @4 h7 H8 ~9 L+ ]10.2.3 取样法 365
9 ?( i9 p- b; f8 d10.2.4 程序的受控执行 367
  O# B# |" Y7 E10.3 使用gdb进行调试 368
7 K4 b( c8 g8 a% f$ [10.3.1 启动gdb 368
6 P- h2 P) o: i3 U. @' I10.3.2 运行一个程序 3699 e8 {# ~) L8 i$ t
10.3.3 栈跟踪 369
; V, q4 i; O* b0 i! [; ^/ I* s; W0 _  r10.3.4 检查变量 370: C6 H' i4 p+ w2 K) w& E  z' m( k
10.3.5 列出程序源代码 370
& a" U  f9 v( w  F* j10.3.6 设置断点 3714 I8 I5 J  W& f- M" e
10.3.7 用调试器打补丁 374
( V2 T- @5 {. Q' j" j10.3.8 深入学习gdb 375' J* L" `- v. v) \% K
10.4 其他调试工具 3750 {; N. x, o6 P3 g
10.4.1 lint:清理程序中的“垃圾” 376
, Y# O. g# r6 a; A  n10.4.2 函数调用工具 378
- P6 g8 o; f0 q: G10.4.3 用prof/gprof产生执行存档 380: C$ _' a) I9 c. ?5 Z' i0 d" u( B2 p
10.5 断言 381
3 H: N" L- H  y. w5 \10.6 内存调试 3836 n" @1 P6 w" h
10.6.1 ElectricFence函数库 383
0 V1 [! V4 b4 L3 w  Y: q10.6.2 valgrind 384! w; N, f  l7 y# Q
10.7 小结 387
% i: I& z/ Q; u2 m/ I$ r' f6 ]8 K, ?8 j. m7 `
第11章 进程和信号 388/ J, }; a0 c3 M2 S( L
1 K% I/ e$ T" s/ o' q9 M: P
11.1 什么是进程 388
! a3 G2 c; |* h0 B* i- @3 ?# f11.2 进程的结构 388
" f6 o6 t( S, C; L- T% X) E11.2.1 进程表 390
. J/ z, v: i' p11.2.2 查看进程 390% a0 _+ z* f) Z' p
11.2.3 系统进程 3919 S$ u7 \: ^% p
11.2.4 进程调度 3937 h0 z  b; g; w
11.3 启动新进程 3946 I! B5 W, W# R2 `! Z4 b* @0 L) w
11.3.1 等待一个进程 399+ z1 a( d+ {0 U& j: j4 L8 k
11.3.2 僵尸进程 4011 b8 [) ]8 L# R: r6 H) F
11.3.3 输入和输出重定向 403# a, C# M! c" ^" S% F
11.3.4 线程 404
6 A6 R% `3 V- e' v- `11.4 信号 404
) i- W- L/ @% X) ^11.4.1 发送信号 4088 `4 E3 o" V) F5 `; V
11.4.2 信号集 4128 S. l! m5 d/ _. C6 p8 o
11.5 小结 415* b1 S2 j# e( D# [  p; }& Z0 T. {
. Z# A3 m2 Y6 w& l/ ^
第12章 POSIX线程 4163 T0 y9 S; g, b) N/ N# G$ R$ j

& K8 h. x( c+ ?, }1 q12.1 什么是线程 4163 e. Q2 J9 p( @( ~% j% A
12.2 线程的优点和缺点 417
$ E! `9 F* X  `- ]0 D, p5 ?12.3 第一个线程程序 4185 U9 D. X$ F4 y5 Q' m" ^$ J
12.4 同时执行 421) {. G' s. @* f9 T
12.5 同步 423
' D, `9 a" u2 X) G0 V12.5.1 用信号量进行同步 423
- v. L* y* m: {. {- H" D12.5.2 用互斥量进行同步 427' ?4 u! i- x8 u
12.6 线程的属性 431% n$ V5 J& r/ @+ d" K/ [. ?/ W
12.7 取消一个线程 435/ R& M7 j- X' f# D2 R
12.8 多线程 438
! [- T0 G$ V( a; K; O$ w12.9 小结 442& x) _# s' N- F/ e% D

% m, c- v: `# k6 J7 W* ~& |第13章 进程间通信:管道 443
6 l  r! h9 M/ |9 [/ A1 s$ r$ _5 Y. v( H3 @
13.1 什么是管道 443
! H2 O; z' G1 ~% F13.2 进程管道 444+ J3 ^( N$ F1 s" w: O! |/ K
13.3 将输出送往popen 445
9 e0 q5 k8 C8 Y* t+ `  o/ Z13.3.1 传递更多的数据 446
' Y$ z" t' v. N; X, w13.3.2 如何实现popen 447
2 Z, w5 g8 S# i4 ~13.4 pipe调用 449+ x8 b: `& H1 N' {! b
13.5 父进程和子进程 451
+ E! c2 s$ Y! \, J7 n13.5.1 管道关闭后的读操作 453
( V7 \3 |: Y) {' r13.5.2 把管道用作标准输入和标准输出 454
! ]% ~& W4 q' j0 v3 n13.6 命名管道:FIFO 456
+ S- |4 i4 k5 C13.6.1 访问FIFO文件 458
' p0 a$ T- S1 k! g( L& Y0 b13.6.2 高级主题:使用FIFO的客户/服务器应用程序 464+ U. C. l  [# c# d4 W  {% j
13.7 CD数据库应用程序 468
- H0 H7 m& U; p( \! c8 i% Q13.7.1 目标 4694 {/ x( A1 H: `* t
13.7.2 实现 4690 R! N6 ~6 U% M+ |) O+ m# u" M5 k
13.7.3 客户接口函数 472
; Z7 w3 D$ {$ u6 @13.7.4 服务器接口server.c 478
% r: x' }$ b  v  a3 L% @7 l13.7.5 管道 4818 d$ V7 K- S% {5 z
13.7.6 对CD数据库应用程序的总结 487
! ]0 M, b0 o" q  s% P9 p5 B" l# D13.8 小结 487
4 k: X0 s0 K1 Y' W: n
4 h% X* a3 k' t% A7 d% b; ~! L第14章 信号量、共享内存和消息队列 488- V0 g- G) h1 g: j0 W: [! E# V3 l
' A) l+ U6 V4 e2 w$ Z" n; P
14.1 信号量 4880 P5 X: Q$ {9 T* l2 W
14.1.1 信号量的定义 489
2 H9 J$ F/ Z# {5 F14.1.2 一个理论性的例子 489
7 v( Z, P0 W0 T4 b  n8 o5 h/ d1 }14.1.3 Linux的信号量机制 4903 m. J% J/ j& O& `
14.1.4 使用信号量 492/ B8 [! b( G/ x( B9 X8 Z1 {
14.2 共享内存 496
1 l3 m$ }& X3 v: N14.2.1 shmget函数 497
2 F4 j3 |+ k: G# x/ @14.2.2 shmat函数 497
9 {5 ^7 V0 g/ {9 ~14.2.3 shmdt 498
9 ~  K/ _* G, O14.2.4 shmctl 498
0 J8 t7 ^: |  Y/ x14.3 消息队列 502
/ C( Z  v3 D# c) [14.3.1 msgget函数 502$ P) W& F. L8 M0 u( T/ v
14.3.2 msgsnd函数 503
/ w9 X  I/ `, r0 J14.3.3 msgrcv函数 503& h: [# a' a( m
14.3.4 msgctl函数 504  ]$ T7 Q6 \6 ?% l- d
14.4 CD数据库应用程序 507
" R2 T6 ?% t/ y# x5 }, s14.4.1 修改服务器函数 507. u* v4 e& \* u& ]
14.4.2 修改客户函数 5093 `7 ]- r2 v7 J% R  B: H
14.5 IPC状态命令 511
3 s2 S' T+ {, A( M' E14.5.1 显示信号量状态 511+ ?$ y* e% C8 m. j
14.5.2 显示共享内存状态 511
5 l9 J. i& ?4 A+ [6 g' I% o14.5.3 显示消息队列状态 511" C( }/ g) C8 w& q7 j# b
14.6 小结 5129 q# O3 n1 H/ N9 p, S: F
/ q7 x5 S# @$ g* I& S, r" F
第15章 套接字 513- j4 G" i6 {  K; ~; E, U( y" G; X
: ^# ~' K  _6 c( E; \
15.1 什么是套接字 513
" N; r! L% N9 s0 J$ y2 k15.2 套接字连接 513
* U  Z4 p- |2 p6 {15.2.1 套接字属性 517" ^) ^5 y% g6 u* E: `+ u
15.2.2 创建套接字 519
- l1 B( H3 ?! r* v15.2.3 套接字地址 520* m1 Y4 `! h3 r1 \, s3 J
15.2.4 命名套接字 520
1 ^  S& J3 A  h15.2.5 创建套接字队列 521
# P$ X8 f( h3 Y# ?15.2.6 接受连接 521& _4 D: ]- p6 H. l+ x
15.2.7 请求连接 5224 c& W) f+ }3 L9 W$ n4 ^
15.2.8 关闭套接字 523
- }1 }+ q/ l* e6 q15.2.9 套接字通信 5230 X, R. ^& j" l3 L/ y& p# S9 v
15.2.10 主机字节序和网络字节序 5253 H( o, N4 s4 Y- \
15.3 网络信息 5273 W& Z4 j4 ~' X! s3 _1 s/ p
15.3.1 因特网守护进程(xinetd/inetd) 531; A( K) ]# Z5 k) `% ?
15.3.2 套接字选项 533* D# {/ t! o8 g7 g& B: B
15.4 多客户 534
$ T$ D  g+ ]# ]" |0 A! O- |15.4.1 select系统调用 537
" [: I7 R$ ~3 p8 _" P15.4.2 多客户 540
$ [  c" j% w' j: z# q3 D* u! `15.5 数据报 543
9 [& ?; Z+ X- H2 v6 @; ]( n$ R15.6 小结 545
! J6 n9 V" q2 u( Z1 p' O4 A) B% v, \1 T1 Q
第16章 用GTK+进行GNOME编程 546
" y4 e. _7 g% L" S' `+ s# |% {, @% F9 a+ {0 t
16.1 X视窗系统简介 546; R' ]$ S! P3 A% t' y
16.1.1 X服务器 547
* J' w. \; K" C3 T! u' q16.1.2 X客户端 547
. t  Q& ~# |1 S16.1.3 X协议 547; y- u; ~% g- N, @- m4 N1 S2 p1 Z
16.1.4 Xlib库 547
/ t  B/ O" d/ c7 m" x16.1.5 X工具包 5471 h# n1 z0 |7 w- z5 U+ u8 v. U
16.1.6 窗口管理器 548
6 Z* O& H. W! t16.1.7 创建GUI的其他方法——平台无关的窗囗API 548
. q: m6 I3 J9 j16.2 GTK+简介 549
2 |7 t# D% ~, C1 k16.2.1 GLib类型系统 5495 `8 h- j; l/ U1 D( x8 V9 w6 W
16.2.2 GTK+对象系统 550$ d+ O  H/ o( t, O  [, r
16.2.3 GNOME简介 550
$ ]2 p& p; P7 d( u16.2.4 安装GNOME/GTK+开发库 551
! O" x, l, y& P, G4 ~16.3 事件、信号和回调函数 5548 x: d( l( e, [
16.4 组装盒构件 556
# D( T6 k( w( |* a% t16.5 GTK+构件 559
9 q; p0 J& k' q' j4 }16.5.1 GtkWindow 559
+ K; F. R6 o7 M# C) f1 A16.5.2 GtkEntry 560
! r; \. S6 p/ ^7 C16.5.3 GtkSpinButton 563
' q) C5 v4 ^; f) I5 |1 I; z16.5.4 GtkButton 5650 j3 W% N" U! H& q6 ~
16.5.5 GtkTreeView 568
9 O6 u  z6 p5 p: N: D16.6 GNOME构件 571
' j$ C. R7 w( |; o$ S$ }# }16.7 GNOME菜单 572: N) X) w. |% ~9 z1 r( D# t! Q1 V
16.8 对话框 576
" S5 m, H7 n5 z" ]16.8.1 GtkDialog 577
% y5 |! g% L, K$ Z* v6 `16.8.2 模式对话框 578" b1 Q, t) e6 C- k, a6 N
16.8.3 非模式对话框 5794 f9 R- |$ C# e8 c$ y+ d
16.8.4 GtkMessageDialog 580/ ~6 h4 V6 ?/ Z6 y
16.9 CD数据库应用程序 581  M" C" u2 Q% R$ b6 V* l' L- ~$ C5 H1 o
16.10 小结 592
% F8 z3 u  a; j/ }3 @+ ]/ u5 ]/ D  p$ h1 p, d8 }
第17章 用Qt进行KDE编程 593, P7 T9 f! l9 [' K% `
; V  A5 j' @# g# t; ~, e! w% g3 c. ^
17.1 KDE和Qt简介 593
5 F7 I- w8 H( Y3 \4 B  d17.2 安装Qt 594# @0 U% w7 _& A! z& d; W. Z
17.3 信号和槽 596
# g" ^- n, N# L/ E% j17.4 Qt构件 6025 e9 l" ?) x: _9 m; Q3 T) J  }0 z" o
17.4.1 QLineEdit 6029 n( Y& \2 F1 d1 c' X: V: H# ~5 D
17.4.2 Qt按钮 605
+ O$ O; M0 N  J9 J( t17.4.3 QComboBox 609! K9 u" C' F+ q$ V" O
17.4.4 QListView 613. P" i1 a' r- `' N8 k/ q: E, E7 D
17.5 对话框 615
! `4 Y* N  |3 E3 C; G2 @  u17.5.1 QDialog 6157 A, P2 z2 s* `
17.5.2 QMessageBox 617
, s, Q! ^; A! Z; e/ C, L& G8 V17.5.3 QInputDialog 618$ I" H3 F4 G7 n! ?
17.5.4 使用qmake简化makefile文件的编写 6205 H: u- N; X% L0 x+ c+ K# i' n
17.6 KDE的菜单和工具栏 620/ t; m( a- I1 ^% l( J
17.7 使用KDE/Qt编写CD数据库应用程序 624( L2 f/ R' }  @8 K
17.7.1 主窗口 624& v4 i) V% F1 A' u* D: c
17.7.2 AddCdDialog 627+ E) f. e" ?/ _! n& h4 E( y" D. k
17.7.3 LogonDialog 629
7 H7 A! m% V: A, L( ]4 K17.7.4 main.cpp 630
! W" \- m4 \5 G17.8 小结 632* A4 i0 X7 `9 r8 X; o4 \

, s% Z. q6 H; I$ z, S第18章 Linux标准 633% P4 Y" }* J# o, h4 v& s

1 z& o* e+ F' ^  B. d18.1 C编程语言 6346 j& h8 X/ q$ p
18.1.1 发展历史简介 634
, K, c0 p+ ~- |% t" S18.1.2 GNU编译器集 6342 L' j* R* a4 ]' o# b: j
18.1.3 gcc选项 6359 K) p$ W8 R4 ]5 l' h5 a4 @& B
18.2 接口和LSB 6363 ?6 G4 A' d" u; {% M9 d6 V
18.2.1 LSB标准函数库 637) w5 c. I3 X4 b9 K* d* R- k: E: ]
18.2.2 LSB用户和组 638
. u5 O0 ?( O- L. Y; ]( ]18.2.3 LSB系统初始化 638! B. |& Q. U) l
18.3 文件系统层次结构标准 6391 H: L+ a3 _6 k! {, _) s
18.4 更多标准 642
9 q# i# k. U4 |1 r18.5 小结 642  {9 R8 d% I7 j

9 P, p8 w4 k* s4 P8 E9 G9 |
# R- z* L' R; a& p, K

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
wrz + 5 + 5 + 3

查看全部评分

最佳答案
0 
发表于 2017-7-30 20:48:01 | 显示全部楼层
这本书不错,讲解详细,值得一读
最佳答案
0 
发表于 2017-10-8 00:08:41 | 显示全部楼层
这本书有没有电子版的呢//
最佳答案
0 
发表于 昨天 18:32 | 显示全部楼层
看起来是不错啊3 h6 h+ z: g. o. H6 Y
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号 )

GMT+8, 2018-7-19 06:11

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表