鱼C论坛

 找回密码
 立即注册
查看: 7409|回复: 5

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

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

马上注册,结交更多好友,享用更多功能^_^

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

* W& ]5 K6 l7 P; d# K" L" }- m
  S6 f0 Y9 U/ R9 n: r& W1 ]书名:《Linux程序设计》
: @7 t0 ?& U4 ~6 s( w0 l/ f6 P2 h5 U作者:马修 (Neil Matthew),斯通斯 (Richard Stones)4 y& x, v3 t! X
译者:陈健,宋健建
7 F3 k% [: S) |4 L4 Q* |6 |出版社:人民邮电出版社
" l" H6 A6 Q7 _3 }出版年:2010年6月1日(第4版)6 e0 C+ _' X& W3 E" e1 B6 u) F
定价:99.00元
9 H- F6 p9 A+ s9 m! D装帧:平装8 L: @- H6 U$ e8 A( v% g  Z
ISBN:9787115228215
* Y, |; {5 O) D) X5 O  [) v* H& N& K0 r. J( }% w
购买链接:  q$ o1 E1 u( V1 @* r! Q, w
# y9 J. F' O8 _# `6 L. L


, I, G5 q$ V/ k1 ^* |" o4 Y3 E亚马逊(Kindle)-> 传送门
( x, W3 ]% c9 p8 D
4 i. F" ^. ?) @7 Z4 D亚马逊 -> 传送门
  E' e) v/ k! F6 ]1 W) ], Y" N. Q0 j* |& p
当当网 -> 传送门3 A' u' \$ ^& j- b# _. \
& |  W- d2 I" E
京东 -> 传送门
' H6 u; D9 H1 M! c1 h, z; Y+ b! E: z! V
天猫 -> 传送门$ i: {9 {/ v; u6 g$ c
" a$ P: Q) A8 t$ x' A
3 K# u* B( C( n3 ]. y* X/ G6 G0 j
内容简介:. x" j7 d+ A. {/ n3 w# f

3 d6 Q5 N" v8 [9 f( s: Z2 G5 n! h

, d/ s  O7 {9 w1 @& r" v5 r+ X《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。
. g( _6 B6 i# p$ K' z
3 }! A& J$ u: g1 X% S1 H* m4 r《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。3 E/ j  ^" r8 s2 y  v

6 _6 A: q0 t3 }5 o: z, |+ D6 c# K, I( U3 M$ q2 I
目录:
" L3 ^2 d9 ^! W9 P: X6 c8 M; T' z# L; Q- R. X; O6 r, X8 P


/ x; L4 h4 c$ [: _" x: ~1 V' w第1章 入门 1) n2 w2 t8 ?" r. e3 v
) f) L3 t, P, k7 H; b3 k& y1 L1 T; [
1.1 UNIX、Linux和GNU简介 1
7 ?2 m  t  s5 v7 w0 e: y2 Z1.1.1 什么是UNIX 1
6 V6 D0 a) M1 r2 X. _# w1.1.2 什么是Linux 2
8 w$ v- d) H+ S6 a1.1.3 GNU项目和自由软件基金会 3
6 r+ R6 j. X7 K8 H1.1.4 Linux发行版 3
7 _# K/ D/ N9 r+ D+ R1.2 Linux程序设计 4: c: }/ e- b6 `; v  V3 E5 e
1.2.1 Linux程序 4
1 V4 z; w& A0 r+ s) w: j1 a1.2.2 文本编辑器 5
8 o! z& B" f5 T- O! ~# r& |9 G1.2.3 C语言编译器 51 K! Q) w2 F4 `- X9 J
1.2.4 开发系统导引 72 n( t/ e2 b$ O6 T" ~8 k* [
1.3 获得帮助 128 \" R$ e2 X' U% b7 U+ A
1.4 小结 14
. {, n! \& S6 L5 S! Z5 w
& r4 m5 Y( I% T9 o, `& j! D第2章 shell程序设计 15
2 \$ o& U; d7 M/ a' v2 B+ x
5 R( O) v; [. F) h' b; b2.1 为什么使用shell编程 151 O. T) \: D1 E' y6 t6 M( y
2.2 一点哲学 16
. `" f# z9 K, E% |- A2.3 什么是shell 16
6 m& N, U! S- }" ]. f- u4 B2.4 管道和重定向 18
( ]; f. f' A5 [$ O5 H0 n2.4.1 重定向输出 18
5 j2 Z4 f/ _4 J+ Z6 ]2.4.2 重定向输入 19
6 `; e7 I& p" y1 g% s2.4.3 管道 19* w( Z+ P" c% S# U
2.5 作为程序设计语言的shell 20
0 q" i/ Z: \' C4 [2.5.1 交互式程序 20
& ]5 H8 K1 T5 K4 X5 K; w, n. a  B: B2.5.2 创建脚本 21
9 z$ N% R$ C4 I2 _" O2.5.3 把脚本设置为可执行 22. U# X. O$ f& M, g" Y
2.6 shell的语法 239 g' A& T$ Z3 q) i0 L
2.6.1 变量 23
, o7 ^& R! U6 W( T2.6.2 条件 27+ e2 v+ U# b% Y7 i& ^9 J
2.6.3 控制结构 291 F- k; M- Q9 k
2.6.4 函数 39
% a" C# R/ D+ J! t/ Q  y2.6.5 命令 42' m$ m, S9 f- x( G% G4 F
2.6.6 命令的执行 58
/ v$ W. ~; g* K1 y2 s+ H9 d8 K4 c2.6.7 here文档 61
  n% ]% }$ ]3 x2 R* D2.6.8 调试脚本程序 63
3 L5 q. J0 W/ e6 {1 t0 ^# \9 B2.7 迈向图形化:dialog工具 635 i: J" N% h4 f0 O/ v
2.8 综合应用 68
( H  F/ O+ u9 @4 t, k2 l2.8.1 需求 680 D! o9 |# h2 Q# a; h# ~( \
2.8.2 设计 68, Z9 D3 _" s) T3 G5 ^" G
2.8.3 应用程序的说明 76
# k6 U7 \# T; L0 B3 N  l2.9 小结 77% {" B& [9 D5 [* J2 A
- Q6 t7 ?& _( K6 @, C
第3章 文件操作 78
$ @/ C  x) E* N' g6 S8 s0 w, I- V4 a1 b. Y
3.1 Linux文件结构 780 D8 \4 L, i% I% L. e
3.1.1 目录 79' {' U3 ^. T6 r' T" t; n
3.1.2 文件和设备 79
# [( H: {$ R& a1 O$ i! R3.2 系统调用和设备驱动程序 804 N  m- `5 P+ f" |0 \5 G& I" a
3.3 库函数 81
- @2 o- u% ~' I0 m3.4 底层文件访问 82
) G- {- u( V2 R3 f3.4.1 write系统调用 82
, m3 C7 k% g/ K5 |6 R1 r3.4.2 read系统调用 83
/ l' T  t6 t1 v, W( C2 T8 F% Q+ b3.4.3 open系统调用 84# J& l9 ~( a8 R, I( e! F0 N
3.4.4 访问权限的初始值 85
* e. s, s3 m2 D$ G+ f4 q9 I# F7 I  Z3.4.5 其他与文件管理有关的系统调用 88) i4 p- Y8 U) f7 F: O( E9 R
3.5 标准I/O库 91
' Z1 B0 q( t: k  z3 h3.5.1 fopen函数 91
! Z" H1 K" H, X- q3.5.2 fread函数 92
2 f+ P" |3 w: d% {* s1 K! W3.5.3 fwrite函数 92/ X3 J+ w; K4 G& I9 s& ^5 ^+ d0 ?2 X0 p
3.5.4 fclose函数 92
- _( O# v9 v- m/ G3.5.5 fflush函数 93' o  R" O8 C7 ~0 ~* v  O& t5 O
3.5.6 fseek函数 93- }1 @$ v9 W+ t9 d) ~
3.5.7 fgetc、getc和getchar函数 93
& ^, g. k7 f. j8 C3.5.8 fputc、putc和putchar函数 94
8 E( W2 q8 |9 d2 c3.5.9 fgets和gets函数 94
" b, Q$ n9 G9 _' y3.6 格式化输入和输出 94  a# J% P7 `* u& u& [
3.6.1 printf、fprintf和sprintf函数 94
, h6 N" i' F6 c5 O3.6.2 scanf、fscanf和sscanf函数 96
3 @+ _/ x3 g2 O/ x7 Q3.6.3 其他流函数 98
# i0 v/ m5 R* K* |( Y+ c3.6.4 文件流错误 99
+ E) k2 h0 L/ q  U9 O1 P3.6.5 文件流和文件描述符 99
+ d& y! j7 T+ X3 A2 L- w0 a8 @9 j3.7 文件和目录的维护 100
8 k+ S) Q: n$ f- |- `3.7.1 chmod系统调用 100
- P& E5 s. A- b5 A# ?3.7.2 chown系统调用 100
& T( g" v7 h( R, s3.7.3 unlink、link和symlink系统调用 100
# o/ \7 F% s, Q+ z3.7.4 mkdir和rmdir系统调用 101
1 H  Z: X, r/ s6 M0 M3.7.5 chdir系统调用和getcwd函数 101
+ F8 x5 [/ a6 @3.8 扫描目录 1026 {) m5 J* \% N$ ?8 L' n
3.8.1 opendir函数 102
- x  L. W, A: N6 N5 @) v7 R: X3.8.2 readdir函数 1025 v% V/ [  Z0 y
3.8.3 telldir函数 103
' L3 ~; j( A- e9 I) o: n, ~3.8.4 seekdir函数 1037 n+ c- n4 l0 v; W- E
3.8.5 closedir函数 103$ ?0 [* }; h0 i# O5 z9 _9 n
3.9 错误处理 106( C7 g) R0 @5 D3 g+ R1 o9 g
3.9.1 strerror函数 106
9 |2 _$ l2 p& g3.9.2 perror函数 106
* \& X: Q3 P+ `$ ]1 B: \3.10 /proc文件系统 107
5 d6 q, Y% P0 B/ d0 f1 K+ G5 X3.11 高级主题:fcntl和mmap 110
' X3 j; m- m9 |3.11.1 fcntl系统调用 110
$ q' R* x: w, I+ `0 p6 ?3.11.2 mmap函数 111. O1 f* i9 m" L. j" L+ F1 |( b
3.12 小结 113# u& V  x4 D* h: C) ~* @% P$ s
6 ~7 {. O+ B% I
第4章 Linux环境 114
+ ^; [/ E$ ?, ~: o1 J
% d; F4 V5 z3 t% |4 d% ^4.1 程序参数 114
8 H  @) }2 `7 V5 [6 v( o1 ^/ k4 v4.1.1 getopt 116
0 K$ b( c5 q5 P3 m' l& {4.1.2 getopt_long 118
9 M, ]/ Y$ S, Y* R4.2 环境变量 120& y6 H8 d/ o- p/ n" C
4.2.1 环境变量的用途 122
: x4 n; @3 Y2 d" ]0 i4.2.2 environ变量 122
2 r: `6 H6 @& D1 n% H3 B0 h# h; P4.3 时间和日期 123! U2 n; e0 A1 u7 n5 j# }6 N
4.4 临时文件 129
/ s7 |, ?3 H3 _7 Z' Y) j4.5 用户信息 131
4 S7 @6 r# j9 E/ s4.6 主机信息 1348 b& z3 x* O( J5 \7 u( h
4.7 日志 1356 W# y/ h! F3 i- r! m
4.8 资源和限制 1391 N2 _- R4 b9 e% p
4.9 小结 143& H: w! ~* f) Z5 P
  n4 g" i+ I, W: o; `& D" X0 d
第5章 终端 144
1 }5 q7 |2 D0 E2 ]
5 k* r+ @( q3 ?7 R5.1 对终端进行读写 144% `$ d8 Q. ?" J+ M* G
5.2 与终端进行对话 149
( n* S1 k+ D3 G/ [7 e# j5.3 终端驱动程序和通用终端接口 151
0 n5 {- H* N$ C- y5.3.1 概述 151" t6 r& m$ a- W4 H4 S" w' x0 P
5.3.2 硬件模型 151( N3 v" K" T; O, Q# n
5.4 termios结构 152
7 Z; z7 v+ q2 c5.4.1 输入模式 153) d3 e% d( ^4 q# O0 ]# @8 q0 J5 G+ ~
5.4.2 输出模式 154
+ `) \9 {! D; {- b4 i$ v" R5.4.3 控制模式 155
6 D% |: X' H4 V: d5.4.4 本地模式 155
$ i9 X) i- f7 ~& S7 o5.4.5 特殊控制字符 155  R# W$ [& \9 w! N# u
5.4.6 终端速度 158) v) [; Q, p4 W( g/ [- \
5.4.7 其他函数 1592 L$ I/ {. S* o2 P% b
5.5 终端的输出 162. Y. D' P+ _8 u: X/ Q7 Z
5.5.1 终端的类型 163$ Y) c/ Y0 [# b
5.5.2 识别终端类型 163
4 a5 h3 O8 U; Y7 @* H5.5.3 使用terminfo功能标志 165
$ m2 h/ P, e: L! C: N! @- k5.6 检测击键动作 170
1 B" h0 z7 l6 t9 Z% G5.7 虚拟控制台 172
2 E5 T$ o. X. l- @& J  w+ g5.8 伪终端 173
% p8 e+ i+ n( \7 L+ p9 p: Y6 L5.9 小结 174% Q0 R+ l5 q2 \1 O. w) Y

+ f5 S% [2 M+ f第6章 使用curses函数库管理基于文本的屏幕 175
# t3 B5 c- W/ J
% A: }1 D& @/ h5 J! h; ?; o6.1 用curses函数库进行编译 175
) G  h' k4 N7 L0 a) l3 C6.2 curses术语和概念 176
1 }! j+ b0 q+ |0 R6.3 屏幕 178
/ l" w) W5 t. X4 j# ?4 `- s8 c6.3.1 输出到屏幕 179
, ?5 K" W3 {8 q, D6.3.2 从屏幕读取 180, k* N+ T+ Y) e% v, R9 [
6.3.3 清除屏幕 1802 f" u0 t0 {' \( Q7 A7 E% [4 N$ N  X
6.3.4 移动光标 180" \# k! Z% c3 v2 }. `
6.3.5 字符属性 1811 p2 a) A8 q8 U0 Y# q
6.4 键盘 183
$ O/ ?! j7 o& U7 h0 M% Z3 Q- o6.4.1 键盘模式 183
. L0 l$ T7 y  ]6.4.2 键盘输入 184
5 S" q6 J( f! ]6 r, H- ~6.5 窗口 185
: U% r: Z+ ^6 s/ a; [) P( k6.5.1 WINDOW结构 185
! B: q& p! `# O6.5.2 通用函数 186
- q: Z# G1 f3 ^( Z  h$ i6.5.3 移动和更新窗口 187
6 U3 ?. U$ t) p6.5.4 优化屏幕刷新 1905 P- e2 H! E) `7 R
6.6 子窗口 1916 A1 L6 L  v0 W
6.7 keypad模式 193" E1 k# w9 M: \7 @
6.8 彩色显示 195
% T$ @3 u- A: _0 x. y7 G6.9 pad 198
9 ]" m# z6 @/ k: v6.10 CD唱片应用程序 200
8 t3 `+ B) Q9 s% s, ?: q* F6.10.1 新CD唱片应用程序的开始部分 200& |" |' _, P8 z. A# y
6.10.2 main函数 202
% ~- O  H2 O. D# E0 L; w* V6.10.3 建立菜单 203
9 n1 a' e* \6 w3 @, Q$ f6.10.4 操作数据库文件 2042 f5 A! F# R& b4 z& _2 X
6.10.5 查询CD数据库 209/ I7 i, Y! N8 K# n9 A0 Y9 f
6.11 小结 2131 f4 d. b) f3 `+ X
( h# w, s+ c1 X/ w! f
第7章 数据管理 214
. x$ T8 P) ?- a! m* j$ `( U, Y9 ~: x5 p+ h, r9 O
7.1 内存管理 214
4 F' {9 ?7 S7 i( H# l1 l" x: O9 g7.1.1 简单的内存分配 2142 U, d5 J# V: X
7.1.2 分配大量的内存 215
% J: y. c7 g9 H' f& Y" e$ q7.1.3 滥用内存 218
9 _7 `' @. u4 `- T3 \7.1.4 空指针 2196 m" C+ x+ {/ O6 @" k  u
7.1.5 释放内存 220% m5 O0 O4 `' d. C% ^. j
7.1.6 其他内存分配函数 221
2 z7 v# V, H  ^6 `% j7.2 文件锁定 222
# O# v& Y+ Y0 ]7.2.1 创建锁文件 222( {6 G$ Q. b8 @1 l
7.2.2 区域锁定 225
9 j% k0 |; w% g" s7.2.3 锁定状态下的读写操作 227
8 ]" }$ Y3 p/ r, ?# u4 G7.2.4 文件锁的竞争 2321 J3 L' k" n. L( l' `
7.2.5 其他锁命令 236
4 t- P& @* E8 j. j0 j- L7.2.6 死锁 236
* Z& T: B. R' T# J7.3 数据库 237$ v" g( n% l+ d: j' t+ L' J
7.3.1 dbm数据库 2379 z& W& A& J2 K! c$ l
7.3.2 dbm例程 238: i+ p7 e, c5 v& e# o' f
7.3.3 dbm访问函数 2397 Z9 J$ n2 K0 J. G  l. Z9 P# `
7.3.4 其他dbm函数 242
! D5 h. P2 O1 E6 i7.4 CD唱片应用程序 244
. w5 y( u4 P7 m: G7.4.1 更新设计 244" w6 M% w) z5 `& J  E7 l
7.4.2 使用dbm数据库的CD唱片应用程序 245; W  s+ n+ y, H7 @4 U
7.5 小结 262
& y: P. N5 n6 i
1 Q. F  R! b. @# N5 r1 l; L第8章 MySQL 263
2 x6 [: }. M! M: a' |. p% H; u8 C+ F: O7 w
8.1 安装 263
$ c* [2 v# M% x6 O7 f8 x* |) S( \8.1.1 MySQL软件包 2649 e$ Y* M. ]; C  y( I9 W* T8 `0 l! T
8.1.2 安装后的配置 2661 L6 {1 }  Q3 s3 V
8.1.3 安装后的故障修复 270/ d' x5 M. {& c* D  Q' g8 i4 `
8.2 MySQL管理 2700 V) ?* G; e3 N  a1 e# S- w! F7 T; @
8.2.1 命令 270$ j/ e6 }+ E4 a
8.2.2 创建用户并赋予权限 274
: B* w( J7 p" n3 O. I/ q8.2.3 密码 276) p/ _5 f5 p: X1 j$ c% }
8.2.4 创建数据库 276
" Z/ d! I- w$ R3 L8.2.5 数据类型 277" z3 [" o5 I. o& }" Q8 S( u" p
8.2.6 创建表 278
/ w2 ?+ h  b) Z7 M8.2.7 图形化工具 280% h# N6 X- E! E
8.3 使用C语言访问MySQL数据 283
) P9 F& a* D) T. [  {6 p8.3.1 连接例程 283
5 C3 t- j* c, F; d% S' V8.3.2 错误处理 287
" V2 U5 `5 _2 [, _4 ~- H% o8.3.3 执行SQL语句 288
/ @- W, g6 Q* m2 \7 g% `" T8.3.4 更多的函数 301
2 k' \. q1 M6 l% h- v. Q8.4 CD数据库应用程序 3019 \! D- q3 w1 B5 g. O# V% x7 E- f
8.4.1 创建表 302
7 \# ?: `# J" ]5 j$ I8.4.2 添加数据 304
8 s) t( X8 i9 s- E) B, T8.4.3 使用C语言访问数据 306
- O8 n3 C* _! Z1 P3 `7 N2 ]8.5 小结 316
; W8 o8 E3 i. S: `& X1 k# a4 K' }
* P! Z- {/ j9 A! ?. |第9章 开发工具 317, @, J' l- G, [/ H' `& J

1 ]" F7 u2 o' w* d) O3 U7 v+ a+ b9.1 多个源文件带来的问题 317
* z3 n0 N+ K$ |9.2 make命令和makefile文件 3184 y) l4 V4 g7 l' k( S5 S
9.2.1 makefile的语法 318
# G5 ~8 e% l0 x+ m9.2.2 make命令的选项和参数 318  M, c, e- l5 V; I9 d+ ~# Y
9.2.3 makefile文件中的注释 321
0 U( z" Z! M/ o2 h9.2.4 makefile文件中的宏 321. @7 C3 M( }; E3 c9 ~0 _8 M5 L# y: \/ Y
9.2.5 多个目标 323
" l3 j, T: v; a, n6 j& y4 r9.2.6 内置规则 325
6 F$ F$ @! O" Z; H: z/ C, F+ \  ?9.2.7 后缀和模式规则 326
4 c- s" n7 e# j! z9.2.8 用make管理函数库 327  F$ R! a2 L2 j- h# ~
9.2.9 高级主题:makefile文件和子目录 329
  B4 C9 h) T2 o1 ~5 d3 r! E/ q9.2.10 GNU make和gcc 329" Z) o& Z9 Z5 Z' _- z! `* k+ J
9.3 源代码控制 330
, R4 n) F* ^2 e7 N" L0 t9.3.1 RCS 331
/ H- x; T1 f0 M) k0 x9.3.2 SCCS 336
' N) {2 s! B$ _8 ?6 _9.3.3 RCS和SCCS的比较 336
7 \* `% s8 p. u# E% d9.3.4 CVS 337
+ b# u# P/ b9 P7 N4 R. D9.3.5 CVS的前端程序 340
& l# [8 ]3 Z1 i% @9 d2 o, O9.3.6 Subversion 341
3 e  e0 }# F/ w$ u9 x2 J9.4 编写手册页 342
. Z: w0 t- b% i# [& j6 R9.5 发行软件 345
% X6 s. S( I3 r0 W) z9.5.1 patch程序 345
% G" ^9 }0 o0 j9 I9.5.2 其他软件发行工具 347
6 }' K# G; H, Y1 V3 f/ i9.6 RPM软件包 349
3 U+ H; W$ l8 V9.6.1 使用RPM软件包文件 349; R9 T# C+ K5 i( m' ?% c$ t
9.6.2 安装RPM软件包 350
* l$ [& U% `- G( G9.6.3 创建RPM软件包 350
: O* A2 O' J. U% a9.7 其他软件包格式 358
* ~. o2 S5 b7 K. O0 W9 ~* a7 E9.8 开发环境 358# j$ \, O8 s3 j) C" L9 y. n
9.8.1 KDevelop 358
' s  c2 c+ [/ P9 G9.8.2 其他开发环境 360; l& Z9 `" l! l8 H7 V: Z
9.9 小结 360- a+ |# c1 J& f% x+ G
3 a0 {6 R: I# o1 `) R$ l& u2 u
第10章 调试 361) a4 Y# d  w0 |+ h" l1 I8 `
- `7 J. Y1 k' U$ d/ }$ z
10.1 错误类型 361
  _' t  X( V) S7 z. I10.2 常用调试技巧 362
. S( r0 D0 n- @* L7 N10.2.1 有漏洞的程序 3620 t) F5 K8 i! C5 @
10.2.2 代码检查 3640 }2 L$ O" V( T! W& |$ X# Y1 F
10.2.3 取样法 365" D4 S1 v% M7 c( t
10.2.4 程序的受控执行 3674 d5 b: Q% t* H0 [8 H6 d
10.3 使用gdb进行调试 368) T$ ?" g' y1 |% w7 V
10.3.1 启动gdb 368
, t- B5 {( P4 M' i/ P! J5 i10.3.2 运行一个程序 369
, [/ {" C% _9 \' f% u& p10.3.3 栈跟踪 369& Z9 _! L- d7 y% ]  \
10.3.4 检查变量 370" \) X  ]( `8 E( H3 p1 v
10.3.5 列出程序源代码 370
5 p+ r+ g6 D' C' ~4 T6 Y5 j/ z' v! [10.3.6 设置断点 371/ a2 j, j" ^. a( {8 M/ m/ }
10.3.7 用调试器打补丁 374/ c2 J. f6 B' N$ o6 b' R+ x7 Y7 ^
10.3.8 深入学习gdb 375  j( H, N. C3 N# A' `
10.4 其他调试工具 375
5 l" P0 t. W5 F6 M" C10.4.1 lint:清理程序中的“垃圾” 376. h5 I$ E9 [- s4 Y* E. w
10.4.2 函数调用工具 378, I  ]8 [5 X' X7 {
10.4.3 用prof/gprof产生执行存档 380. g  ^# m* n2 P" A. b
10.5 断言 381
; N: N* x7 H0 W0 H2 X/ g10.6 内存调试 383# O( ~; d* z4 l( N0 f, f% A' C2 x9 F
10.6.1 ElectricFence函数库 383- O5 j; `/ ~+ T! x% C
10.6.2 valgrind 384
& Q* g& G3 F; w/ ?" `2 ?10.7 小结 387
9 w4 c7 i8 F$ s  P5 u9 `
5 O/ M4 V4 q" O第11章 进程和信号 3884 g' z" r9 x- E1 x; _: `
. W) Z. X5 l) c
11.1 什么是进程 388
8 }$ x. A0 J; g! M3 B11.2 进程的结构 388; x1 P% h( I& S% l; S
11.2.1 进程表 390
+ G2 t, ^2 \; y7 C1 z11.2.2 查看进程 390
& M* h& m+ q( y9 z" O) D8 t; Z11.2.3 系统进程 391
5 n! J" V( U, |2 a: A11.2.4 进程调度 393, H2 l2 ^* b2 p% @. B* K5 i5 Z$ ]
11.3 启动新进程 394
, Q: J) V  R; u2 F11.3.1 等待一个进程 399
: P7 g' y9 c/ y! ^% o11.3.2 僵尸进程 401
$ r1 ^1 v5 X% n& {11.3.3 输入和输出重定向 4031 I6 ?) i0 x5 T
11.3.4 线程 404
8 J9 n) z( E' m  I0 G( d$ ?4 n11.4 信号 404; I2 V: i0 q8 T/ f8 |
11.4.1 发送信号 408
' Z# y7 }2 O# h$ V7 _7 [11.4.2 信号集 412
$ x1 Y6 d* d& x' I3 Z4 m11.5 小结 415
5 O; u) U2 y# x8 z* ?' W
9 f$ N2 l0 u% [/ a2 Y, U, A  y0 o0 ^第12章 POSIX线程 416
  S4 U( _* O0 r; |+ z
  ?+ ~: Z$ [/ |0 R. s! g& D12.1 什么是线程 416
  F; \$ \9 i2 J# w& _) K* D12.2 线程的优点和缺点 417
! n9 P% Y- [# S9 c( X* B3 P12.3 第一个线程程序 418/ X5 @& q+ Q- P  O3 {% @4 ?8 @
12.4 同时执行 421" t9 [& N6 H$ b+ a" F( p0 W
12.5 同步 423
# T7 L, T8 X( l6 h0 n12.5.1 用信号量进行同步 423
7 w0 d) z! p& d# v. _# N  v12.5.2 用互斥量进行同步 4278 T8 v% l& a' T, l/ o
12.6 线程的属性 431
" \1 \9 M/ c3 W) j4 K12.7 取消一个线程 435- ~- ^7 l# Y9 i8 Y
12.8 多线程 438
+ y" s* ?8 U5 S1 D2 i' O12.9 小结 442
* O$ _$ q9 M) \6 w0 f- a9 i% M. f1 Y& P# v- y$ a& `, s
第13章 进程间通信:管道 443" i1 m) \' Z+ N) R: w
0 o$ [; d; c3 Q8 i1 H+ n
13.1 什么是管道 443; O& z" ^6 W( I( R1 W
13.2 进程管道 444
' }1 [0 s9 h1 }9 G' R13.3 将输出送往popen 445, z6 @6 z1 X0 F$ N# T. |! |
13.3.1 传递更多的数据 446. M9 I- g2 |' x- o
13.3.2 如何实现popen 447
* \2 ^1 n; B; X6 V5 Q; L! ^5 |13.4 pipe调用 449
! B( ?) V5 T7 h  Z1 g9 ]$ S! M: F- ]13.5 父进程和子进程 4517 }' e5 R; o2 @0 y; {$ \1 `
13.5.1 管道关闭后的读操作 453
) R% F& }0 ^* ]4 P  V# `13.5.2 把管道用作标准输入和标准输出 454
+ a1 j. V3 Y. |. [' O# u7 G13.6 命名管道:FIFO 456' Y: D5 n/ z: G7 F% o! r! F  o
13.6.1 访问FIFO文件 458
2 R9 o* g2 ^6 ]. }" A13.6.2 高级主题:使用FIFO的客户/服务器应用程序 464( t: Y' x4 f9 p
13.7 CD数据库应用程序 468
8 U8 h1 N# \9 y; J9 s" P; O  p13.7.1 目标 469
& O+ p3 ~$ W" @! G) S$ O; k7 h; ?13.7.2 实现 469
5 A! f7 k" U, Q/ k13.7.3 客户接口函数 472
5 _- ^1 M# `. G1 u( R; T13.7.4 服务器接口server.c 4783 t2 c% b" B7 j. Q2 p! |: t; s
13.7.5 管道 481
+ ~* K3 W3 [+ {+ B13.7.6 对CD数据库应用程序的总结 487
5 \4 S* e& ~' v7 _, ^! A4 b, m4 I13.8 小结 487
- h: C1 m. P  ~& p, q3 f' F% i, X% O% X3 U, h
第14章 信号量、共享内存和消息队列 488
* m- @+ `$ {) Q5 T6 U$ a. E
2 k" j0 G4 X& B- d( e  M6 f7 k14.1 信号量 4885 \2 J; ]3 I8 t
14.1.1 信号量的定义 489
7 ]9 u- w, P* u! f14.1.2 一个理论性的例子 489
% n# N2 F# n* c$ y: d4 u; y; K9 `+ d14.1.3 Linux的信号量机制 490
9 T" R. w- K5 L' z7 {14.1.4 使用信号量 492
2 X7 t- ]2 T' d' u6 e% P14.2 共享内存 496" T; e, }. d. c: j9 v
14.2.1 shmget函数 4970 ^- l) R, f& X/ ~
14.2.2 shmat函数 497( p& R, h) @" \$ A. O8 a# I
14.2.3 shmdt 498
  E) N* D: ?7 ^14.2.4 shmctl 4989 c2 N/ f  h& T  j2 O
14.3 消息队列 502$ C1 h- o% y& I* w7 g% \
14.3.1 msgget函数 502- ?3 |; T; H" e& k) R# P) l3 a4 o
14.3.2 msgsnd函数 503
6 K) L# M+ c. N! ?9 B14.3.3 msgrcv函数 5037 C* o4 F6 y1 x! V/ ]; |: w
14.3.4 msgctl函数 5040 w, t4 t0 u1 G8 I* r! l5 e4 U  `' X' `
14.4 CD数据库应用程序 507- D7 Q& X4 X8 P4 d8 B. v) Y
14.4.1 修改服务器函数 5078 d' r8 {/ ^& H& ~5 j
14.4.2 修改客户函数 509' h: _( |2 w6 z6 e; K
14.5 IPC状态命令 511* X9 [% }$ N) \6 i9 ^0 C3 n
14.5.1 显示信号量状态 5116 s9 k1 O- r. n
14.5.2 显示共享内存状态 511
( c+ `4 @8 n. ]# K4 D/ A14.5.3 显示消息队列状态 5116 ~3 b( F8 e& d3 r1 ]2 H) \" c
14.6 小结 5124 B& k; n2 ?4 [
' Q7 Q( S' G9 K& V/ n. X! w' n
第15章 套接字 513) }- g3 ^% a; {/ H$ W7 z, ^

6 c6 M5 o5 Y$ |$ Y. Z. D: |$ z15.1 什么是套接字 513
+ I6 \0 @& o, @  h15.2 套接字连接 513
- s% E/ U9 W* d" x+ F3 f15.2.1 套接字属性 517! C) D. K7 U1 ~2 Y
15.2.2 创建套接字 519% A6 h5 y' s& _% O3 {! {
15.2.3 套接字地址 520
! T6 r! o) N4 B* V" \. S, _) x15.2.4 命名套接字 520) ?  l# k2 i: n; z' k2 h( O
15.2.5 创建套接字队列 521
; J! w; r; `+ y4 [# X15.2.6 接受连接 521
; }* D( n  ^7 _  X+ Q; h15.2.7 请求连接 522
. d) I( s9 A9 ?15.2.8 关闭套接字 5239 j8 s' s5 V  V, B/ R' m- i
15.2.9 套接字通信 523
3 X% a6 \& s# |% y5 P15.2.10 主机字节序和网络字节序 5257 a. y2 X5 M1 R# i
15.3 网络信息 5276 x* f( d; ?8 f) R9 ?" E* {) @( r
15.3.1 因特网守护进程(xinetd/inetd) 5316 a' b3 o$ W3 @/ W$ A, y4 m, x) k
15.3.2 套接字选项 533! d9 l$ m+ M$ U: V9 j; K  i" p2 W
15.4 多客户 534
5 c" k, U- n# L4 D) Z7 X15.4.1 select系统调用 537
+ ]  h6 x2 s" }6 B$ b9 \1 r9 u7 Z15.4.2 多客户 540
- f& ?- m& K& D. l9 U: s15.5 数据报 543
4 N) K: x5 i* Y" _15.6 小结 545' s  G' S5 Z, F  \/ W% B

3 x* v- z7 R- o/ b# y( C- p' t4 V第16章 用GTK+进行GNOME编程 546
  [! w2 B; ?0 ?3 i0 z- U, l% q
" B1 M, o$ D( c16.1 X视窗系统简介 546
' I( f5 q6 e: a3 ~" u16.1.1 X服务器 547
; W/ u5 @' H' g9 g$ p; C" x7 `16.1.2 X客户端 5477 O- s; \- T$ s: p- J( {
16.1.3 X协议 547
: z2 n3 z: f' J" \+ r4 \$ H16.1.4 Xlib库 5473 p, C7 e7 X* {2 |' e
16.1.5 X工具包 547  e5 F7 Y& k: s+ u
16.1.6 窗口管理器 548
8 Q, O+ U& s1 G1 t5 A0 ?16.1.7 创建GUI的其他方法——平台无关的窗囗API 548/ p6 V6 O7 y/ ]$ }6 E
16.2 GTK+简介 549
% K0 R- d) A2 k9 I8 w) v16.2.1 GLib类型系统 5497 y/ h6 e; n& B) q, Z0 Q3 B1 H  P
16.2.2 GTK+对象系统 550
' T; i" B1 o. @9 Z5 q; v) i% g  `16.2.3 GNOME简介 550
% J8 z8 N( Y2 v: N: k: r& W3 y$ W$ }. M16.2.4 安装GNOME/GTK+开发库 551
& _* a* s" l' w3 w! R16.3 事件、信号和回调函数 554
3 I. W! J7 O" V; _16.4 组装盒构件 556
! @9 J9 |$ h7 I/ y' j7 \1 h9 d16.5 GTK+构件 559( F2 p  i" S, Y; h) ^+ @$ Z0 ^
16.5.1 GtkWindow 559
1 u2 ^9 d! ^! C& L- ?16.5.2 GtkEntry 560
7 j5 {7 W5 z: `4 q! s16.5.3 GtkSpinButton 563
9 W" v$ y( s  V2 ^6 q16.5.4 GtkButton 565* r1 u  k: R% J
16.5.5 GtkTreeView 568# U3 J, V& p9 x7 \
16.6 GNOME构件 571  a6 J; S6 q# X% j3 K8 B& R
16.7 GNOME菜单 5727 [! }  R# \7 R5 C4 ^/ S2 b
16.8 对话框 576
6 {3 l. J: m) E" @, R. a16.8.1 GtkDialog 577
. B. t9 V9 a! v! ~7 F16.8.2 模式对话框 578
$ y" K/ e" G) ]1 I; ], B- A16.8.3 非模式对话框 5796 k9 b# U! l9 A* l' V: @  u1 s
16.8.4 GtkMessageDialog 580
, F+ S1 @  c: }! _$ G/ A$ i16.9 CD数据库应用程序 581
% ?5 A" c; L1 E+ \16.10 小结 592
' i# M7 f; a6 p0 O( H2 R* ^
: T6 K. g/ c1 f4 B第17章 用Qt进行KDE编程 593
$ \, a. b+ u# ^$ T2 U8 O& V
& Z: z, a& [0 S0 W$ @- B17.1 KDE和Qt简介 593) L6 }' {1 y) n! g
17.2 安装Qt 5942 S0 L. ]2 l$ @" {
17.3 信号和槽 596
8 U1 v# A* ?9 f% k% t7 }17.4 Qt构件 602
2 W) B. t. v8 Z2 w* K3 b17.4.1 QLineEdit 602
' P0 B/ g" ^. V; c: l9 p7 N" ^17.4.2 Qt按钮 6054 m0 l* w7 m4 d
17.4.3 QComboBox 609
6 h0 U/ r( W0 s- q17.4.4 QListView 613
# M* S* `. c& r+ w3 Q6 X17.5 对话框 615) K1 l; I" `  ]# ~, H* |
17.5.1 QDialog 615# N0 W) _9 _  d! U+ a, H3 S
17.5.2 QMessageBox 617
  \& o* t* P* h6 @5 ^9 c+ C17.5.3 QInputDialog 618
: a1 O7 l5 U4 F4 l) `17.5.4 使用qmake简化makefile文件的编写 620
+ W, I5 J$ T8 M8 s: c# d17.6 KDE的菜单和工具栏 620
0 C/ G; p! k: D2 [0 \  y1 B0 \; {9 u17.7 使用KDE/Qt编写CD数据库应用程序 624( ~) B& [0 Q$ P2 E: ]- k( D8 g
17.7.1 主窗口 624: y6 }( [5 `1 g6 i; _! J
17.7.2 AddCdDialog 627
. k- z6 f3 |, z" B6 J. T17.7.3 LogonDialog 6298 L$ j% }! |! }* [8 |
17.7.4 main.cpp 630; u. G7 n, d$ ~; ^: i
17.8 小结 6320 E% s; @$ Q- V0 S5 d4 H  z: v
; `; t; \6 \9 O! t8 U- B
第18章 Linux标准 633. ]+ u' s1 K7 f9 T: \

1 Q, }# L: F0 K0 B% n: Z18.1 C编程语言 634# o  d7 j0 \) S& q, C$ y0 b
18.1.1 发展历史简介 634
6 v' P% ~% [8 U18.1.2 GNU编译器集 6343 g+ g/ S  a. k6 d! f
18.1.3 gcc选项 635. i7 B; b4 y5 P  l7 O* i! k6 S- s  k: ]
18.2 接口和LSB 636. E1 z5 U; R0 o2 B1 o3 w7 i
18.2.1 LSB标准函数库 637' \+ }  k  R5 `/ C9 Z/ E
18.2.2 LSB用户和组 638: p& M* Z) A4 X) c2 w; ^( v" L7 w9 ?
18.2.3 LSB系统初始化 6384 g+ r9 j' h$ u- k+ ?
18.3 文件系统层次结构标准 6398 U2 j3 q) `' f' v7 b1 u  R' R4 O
18.4 更多标准 6425 J2 f# C% U* r) b
18.5 小结 642
! j* r9 c: \2 ~7 m5 T$ B2 [$ y6 {# @# M' p

) Z' R) d8 f. z# U

评分

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

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-30 20:48:01 | 显示全部楼层
这本书不错,讲解详细,值得一读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-8 00:08:41 | 显示全部楼层
这本书有没有电子版的呢//
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-18 18:32:35 | 显示全部楼层
看起来是不错啊; E) c& Q; `6 G
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-5 15:52:54 | 显示全部楼层
经典,没看完呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-4 14:51:53 | 显示全部楼层
c中精华
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 19:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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