鱼C论坛

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

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

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

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

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
9 H2 `, f# P5 W( d5 i

& n" q: D& C/ F' [书名:《Linux程序设计》$ K* a9 E9 Q, s/ \( Z8 A
作者:马修 (Neil Matthew),斯通斯 (Richard Stones)) y" ]: A9 z9 H3 _! y7 i6 M
译者:陈健,宋健建
6 \! W, \: n! j- j出版社:人民邮电出版社
  ?- B% o& s; c$ B出版年:2010年6月1日(第4版)  O4 d# m. J: b- d& k0 I
定价:99.00元# i# |, d6 ^( T; Q$ k
装帧:平装# A7 P6 n6 n) a
ISBN:9787115228215' e% z* E9 \% J* t/ U3 ?% X

2 Z5 U+ y: A$ z7 v+ S购买链接:8 C* y3 l3 k: S) K0 x0 @
9 g, A$ U$ e, t% ?) O! m


8 S, M/ ^* H6 U( k) @8 b7 h亚马逊(Kindle)-> 传送门
6 E4 i5 l! |# s+ I/ l5 c. A! P
% r. r, c/ y  A* x( y. R3 r亚马逊 -> 传送门
! Z- K* u9 s. V) y6 w2 ]; q, E+ j* Y) u: E! [" U5 }( L- w" @2 l
当当网 -> 传送门
% T# `1 g' m$ M. W7 R+ |' D) u/ @! u
京东 -> 传送门+ e: m% E: @' p1 n; Q- g
0 C2 {+ F' p! \1 d5 R8 b* p
天猫 -> 传送门
( G( l* j: w; I+ Y$ N8 `1 @# _8 @. u0 W: T8 u6 {9 h

4 I! n! f& M/ Q! Q+ k内容简介:
1 d3 P' O+ F8 E) Y0 H; h4 H! ~# D- M% n8 L' k  d. _" S: k3 @

5 r8 ~) `% k# J+ P
《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。7 ?! M5 E$ g( _+ w3 @* X

# r' O, I2 z* r) S《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
' y; o" b1 d) N) C
! ]- L# o3 y  M* g. h+ n4 W; P  ]- W  l& l0 b( X, Z$ ^4 ]/ j
目录:
$ o; K- H- ?5 [6 o9 m0 g
' M/ ?4 s9 k+ k3 r; y6 X

8 D+ }8 ?+ W, |) c! p  X第1章 入门 13 n, K% }/ l  L/ ?# ^% h3 x2 M

& i* }+ P- }+ a$ b; Q3 {1.1 UNIX、Linux和GNU简介 1& Q$ G: x, N4 l% _  a5 r, j' Z
1.1.1 什么是UNIX 19 @5 G% T/ w2 {. z
1.1.2 什么是Linux 2
: Y, m( I0 e" |) F( T1.1.3 GNU项目和自由软件基金会 3
" L& g/ R( a' i+ b, N  V1.1.4 Linux发行版 3
0 @# L8 D' _9 H, M* k1.2 Linux程序设计 4
5 w  k" Z: o4 M7 u* I1.2.1 Linux程序 4
2 w1 k: Y* l& W  R8 g1.2.2 文本编辑器 5# S: j5 _: l: O  U1 ]
1.2.3 C语言编译器 5
9 p5 D4 g2 p$ ]1.2.4 开发系统导引 7
* u- G; I) j6 l. u- b6 K; n1.3 获得帮助 124 L5 P) J7 N) V/ o
1.4 小结 14
2 f* g: K+ G! P9 ` ! U1 H) V6 }! I
第2章 shell程序设计 15  N8 D2 O/ U+ c: K+ K

$ h. }/ b- [9 v2.1 为什么使用shell编程 154 F/ f6 b: e8 ^6 p1 ~
2.2 一点哲学 16
3 @! _8 l. P$ e+ }2.3 什么是shell 16) k" F) u/ }4 r& c4 ?3 F' k
2.4 管道和重定向 189 I- m3 }2 O' R
2.4.1 重定向输出 18
$ D  x- z3 N# u3 g2.4.2 重定向输入 19
3 {. J; J: W' h+ }" V2 M2.4.3 管道 19
  t$ k/ I& q2 p4 s( ~6 a3 _2.5 作为程序设计语言的shell 203 j5 [! S' A0 w& \8 }  `
2.5.1 交互式程序 20
) c# W+ h6 ^. z& a" z  ^2.5.2 创建脚本 21
) E7 _2 ]0 b1 E5 h% }: z2.5.3 把脚本设置为可执行 22
: ~  d1 N& {3 D! p- e  x8 K4 s2.6 shell的语法 23% i& x" [3 r. }! u' U; X
2.6.1 变量 23$ C+ H! c# D& S, l  ~2 G9 I
2.6.2 条件 279 }$ C' H! j) ?" d+ Y) D+ b& U' j
2.6.3 控制结构 29/ A+ C2 x- X2 x- i
2.6.4 函数 39
0 O3 z- W& A* T' T8 O1 e) `6 a8 Q" Z5 Y8 @2.6.5 命令 42
5 |0 U4 l# z+ ^7 K2.6.6 命令的执行 58
4 v: f  f1 ]3 \. |2.6.7 here文档 61
2 x) ?) W; r  n2 a2 T2.6.8 调试脚本程序 63
% C* f1 {/ A' d2.7 迈向图形化:dialog工具 63
  a/ u! b! u  v: X2.8 综合应用 687 N0 x- o5 c. `* B% O# L% Q+ `; _
2.8.1 需求 68
3 Z" F' n3 d7 D1 }9 t7 S2.8.2 设计 683 N3 w4 g4 p7 u2 ]
2.8.3 应用程序的说明 76/ d4 ?/ u3 f" P* B! s
2.9 小结 77
% a8 m, A5 V  [$ U6 R7 Q* s
9 q2 _+ m5 g0 b% C) K. N  h第3章 文件操作 78
+ E, s  h- R# g# U! v
# }0 k' s7 T6 `3 k3.1 Linux文件结构 781 t- Q$ L. a* C4 V/ P& W
3.1.1 目录 79
6 f2 h2 r* o2 S2 \. x3.1.2 文件和设备 79  q/ n3 I9 c* h9 f
3.2 系统调用和设备驱动程序 80
3 _8 x2 ?; a3 j. ~0 j6 |& f+ f: H: J3.3 库函数 81
2 S' j' Y; {, u: |& |& \3.4 底层文件访问 82+ ~* d4 y2 K/ n/ V0 M
3.4.1 write系统调用 82
" O, \2 I0 `$ t- M% G$ ~3.4.2 read系统调用 83; c% v. k9 t% R& q) E9 \/ ~
3.4.3 open系统调用 846 o; K2 x5 e+ S& n, H( b5 M" m
3.4.4 访问权限的初始值 85
6 M& w- s4 g0 ?3 G( u( F5 K3.4.5 其他与文件管理有关的系统调用 88
' f9 C  \" h7 z9 |+ o3.5 标准I/O库 91
: b4 T$ ?; p# c7 [8 t  v3.5.1 fopen函数 91( i' F- a  v. ]9 G% X# X
3.5.2 fread函数 921 ]; O* r$ g" m' ~
3.5.3 fwrite函数 92+ {# M! |1 J, f% r. v4 d
3.5.4 fclose函数 92
& o# u7 V" Q# T  \3.5.5 fflush函数 93. p/ U/ d& U. `
3.5.6 fseek函数 93
$ l2 c7 _" x! p: Y6 V- l. N0 `' A7 [3.5.7 fgetc、getc和getchar函数 93
6 e3 h2 ]1 x; X' G7 L8 O! |' p3.5.8 fputc、putc和putchar函数 94% P+ C( r. c' Y1 }: B
3.5.9 fgets和gets函数 94  F4 d2 _+ N! d6 r  a) q  j
3.6 格式化输入和输出 94
- E2 L9 O0 i. u0 P+ D5 k: y1 a4 @2 _2 S3.6.1 printf、fprintf和sprintf函数 94
' o+ _! F# e  p- ?. X3 Y3.6.2 scanf、fscanf和sscanf函数 96! c( u. V, ?3 S* n9 f
3.6.3 其他流函数 98
& S9 R! g( U/ o. J3.6.4 文件流错误 99
6 H' n% H  F1 ^3.6.5 文件流和文件描述符 99
' M7 B6 f3 ?4 m3.7 文件和目录的维护 100
1 {$ w+ r! G/ }7 F$ ^  I3.7.1 chmod系统调用 100! @2 Y) k" S) |* y9 ?8 y  }+ t
3.7.2 chown系统调用 100$ c3 i9 t! d/ g* t
3.7.3 unlink、link和symlink系统调用 100/ [7 l# l5 i% R( P
3.7.4 mkdir和rmdir系统调用 101; ?: o0 d: l9 U! Y9 f: v5 Y( S2 U' h# i
3.7.5 chdir系统调用和getcwd函数 101# G# b* o  M  b  {
3.8 扫描目录 1026 M* k5 O4 R$ a
3.8.1 opendir函数 1021 n2 I  w2 `$ n0 E7 d
3.8.2 readdir函数 102
) e: U4 M; b2 Z( f5 q3.8.3 telldir函数 103
3 A2 C5 n3 R! w9 [" Z1 N% y3.8.4 seekdir函数 103
6 [' J7 u( i5 d/ _5 n3.8.5 closedir函数 103
8 H! r! e, H% Y5 O3.9 错误处理 106
, A* J7 M" \( p  _# j3.9.1 strerror函数 106
) R: m2 V7 ^6 E7 `: g3.9.2 perror函数 106
  d( l/ V6 w* N3.10 /proc文件系统 107
3 u1 ^8 r/ e! P9 O# _3 s, g3.11 高级主题:fcntl和mmap 110# T9 i" y# ~& ~  F1 J; _: @% f
3.11.1 fcntl系统调用 110( f. C3 c0 v: k: z
3.11.2 mmap函数 111
: `7 S& Q, ?3 x7 j# J3.12 小结 113
. L( V9 B  R; J7 [! u8 k' S. M1 r, W
% I$ M; G: W! c8 X第4章 Linux环境 114( Z8 S4 R( N1 w+ x

- ]" @  x$ c2 F: n$ n4.1 程序参数 114$ D. u, O' {1 {, ^" O  X+ L" @+ w9 x! m
4.1.1 getopt 116
- ^0 u9 ?: s3 r5 i2 r5 Q4.1.2 getopt_long 118. u% E& A: W! [' E
4.2 环境变量 120" T$ n' Q+ s% x3 k( w9 E
4.2.1 环境变量的用途 1224 c: x. Y( y, {: O& t# M1 l$ j0 i
4.2.2 environ变量 122$ A% [# B& B7 w; ^
4.3 时间和日期 123
+ W" Q- h% l+ h4 k: I* x& {4.4 临时文件 1296 Z% K2 a$ F$ q% m. h
4.5 用户信息 1311 @0 u! [- ~& V* @9 y( p0 l
4.6 主机信息 134
4 v. h/ I$ k) b0 N- n8 P4.7 日志 135
  B4 U2 H2 D$ \4.8 资源和限制 139, U9 W3 e9 y" z% Y* K  s% h
4.9 小结 143
  O% e' ?8 t+ ~ + D* F, S( J4 n# b
第5章 终端 144
+ w4 V; Y9 H' |/ F+ k8 `
9 e5 J9 z; |& X+ H! K, e5.1 对终端进行读写 1441 d6 t! a+ ^  J6 V
5.2 与终端进行对话 149
8 G( A) `. p% V. C) C$ v5.3 终端驱动程序和通用终端接口 151" e& a- J9 A( ^
5.3.1 概述 151
& G1 k( _3 y1 @7 \5.3.2 硬件模型 151
' s1 D9 K' X: ^/ o. K5.4 termios结构 152/ Q, u/ l% Q+ F& H
5.4.1 输入模式 153" V- Y( @2 N- l2 M( X1 \  t6 H
5.4.2 输出模式 1546 M: g) t) u" u* c! j5 ^
5.4.3 控制模式 155
! k$ K3 J4 t  r! m7 H5.4.4 本地模式 155
, u) i/ m& D  I( J$ x9 {9 R/ b% B  e* W1 U5.4.5 特殊控制字符 155
9 a8 _2 E0 g) Q& j" n% D5.4.6 终端速度 158/ X5 s9 q; V$ J, [& L
5.4.7 其他函数 159
: _  r5 F% Z( D" c& N6 O5.5 终端的输出 162
! Q0 E/ r3 j1 ~" k8 t) a. T5.5.1 终端的类型 163
6 m: p* Z8 F1 X9 |5.5.2 识别终端类型 163
3 P+ X7 o0 o; M/ j+ Y5.5.3 使用terminfo功能标志 165
7 Q+ N! ~, J. H! n  W5.6 检测击键动作 170  w" m9 p7 U4 O# c# z6 p1 p
5.7 虚拟控制台 172
& t" y& O% Y3 U8 w1 J5.8 伪终端 173% [' z; U6 t* a5 `% f
5.9 小结 1749 j) o, |. l2 ^3 T' g

" d' V- O. G  {0 c第6章 使用curses函数库管理基于文本的屏幕 175
, T8 U" M2 p& q" s5 ^" i5 k! i$ x& h9 g- u* @5 U
6.1 用curses函数库进行编译 175
( }: a! f9 F4 @2 `2 v6.2 curses术语和概念 176, `. G) {9 I* o5 X
6.3 屏幕 1781 r2 W: }: e" r5 W, L# o
6.3.1 输出到屏幕 179
+ m$ V2 f3 }( `$ i6.3.2 从屏幕读取 180' A+ a& i; E9 N5 y# e* ~
6.3.3 清除屏幕 180
% Z4 r% Q. D; U/ ~" a3 V6.3.4 移动光标 180/ |. G# o+ k8 ]: P7 S" E
6.3.5 字符属性 181, ^+ @; W- G! V( }* n& Q9 [
6.4 键盘 1832 K" @+ u6 t5 u' {2 D2 A( }
6.4.1 键盘模式 183, \! E' O' K5 m9 t5 Q
6.4.2 键盘输入 1844 z7 m/ F9 Y3 U
6.5 窗口 185
5 H% U$ D1 P1 ~& j& E6.5.1 WINDOW结构 185
- }. J  U4 K$ w" U) B- ~6.5.2 通用函数 186' Z5 ^+ k9 Y* a
6.5.3 移动和更新窗口 187
- k: ]5 {8 @% f8 N. g) c6 ]6.5.4 优化屏幕刷新 190% K2 N. [- h- e8 j- j) \. _. J7 H0 l/ j
6.6 子窗口 1919 y6 I# D, a! I) ^9 P7 n1 @6 |
6.7 keypad模式 193
+ [$ B- ^  w" o! i& p/ r6.8 彩色显示 195
6 X& M, B9 ^4 U! ^' p6.9 pad 198
6 ]3 [) p. V% m: q6.10 CD唱片应用程序 200
" O8 e; t& m0 o& R6.10.1 新CD唱片应用程序的开始部分 200
0 K/ q! t9 j2 s* |6.10.2 main函数 202
9 t1 o* L- X$ \1 b! _6.10.3 建立菜单 203
5 H+ ~. @! w9 F1 D5 t5 K( q6.10.4 操作数据库文件 204
/ C2 `* Y6 W* V4 F6 A0 f* W7 o6.10.5 查询CD数据库 2092 Q" n) P3 ^3 T" O# ^% c
6.11 小结 213$ P% I8 u9 d/ g8 h

. c% w; {, R4 F( W第7章 数据管理 214
7 j1 e- {& q; l8 z* D1 P4 d8 G
9 x: h% I- S. h/ Z7 `* X. I1 o  k5 k7.1 内存管理 2147 x7 V# x' E& T. [. I& @
7.1.1 简单的内存分配 214" \0 t9 L' ^& H# I& ^4 B( I" A
7.1.2 分配大量的内存 215
# Q8 x# j6 X/ d1 n' H9 o7.1.3 滥用内存 218& Z! l6 ~! w' x3 C
7.1.4 空指针 219
4 u8 Y9 ~$ p( L' T6 }+ b, u* z7.1.5 释放内存 220
0 r7 {! V# g- z7.1.6 其他内存分配函数 221
- s+ ~% ?, C3 ?5 z6 N7.2 文件锁定 222
- M# b1 l3 I) a' h) z. h7 z% m7.2.1 创建锁文件 222
+ U' V* R2 ]9 _# X$ B* N' Q7.2.2 区域锁定 225
  y( \( I  G* L( \% j0 ^) `9 v7.2.3 锁定状态下的读写操作 227
/ d4 W/ C7 i) G2 @$ f" n7.2.4 文件锁的竞争 2325 ^9 K  p  w, |
7.2.5 其他锁命令 2369 z* s1 W9 K( z1 a& i& w- L6 e
7.2.6 死锁 2367 Q) C# U; ?5 c
7.3 数据库 237! q0 J% }2 U+ F
7.3.1 dbm数据库 237
: M6 b- Z& m' s- I9 B7.3.2 dbm例程 238
0 ]6 }0 n8 r' F6 l7.3.3 dbm访问函数 239. u8 `2 J/ g/ a/ l
7.3.4 其他dbm函数 242( k5 ]6 B' q# h: D8 {: y! A
7.4 CD唱片应用程序 244
+ @" C( E! }" ?$ _7 S# o6 A7.4.1 更新设计 244
! x+ b6 e1 a% e+ w2 x$ Q; O) S7.4.2 使用dbm数据库的CD唱片应用程序 2458 w! j3 q; `7 N8 X7 r$ a7 \
7.5 小结 2629 z" P: P) O! l% r/ p
0 W% _2 y; N6 k. g% B8 s0 _- q
第8章 MySQL 263" U% c0 L5 U8 B( y

, s$ `+ Y, T) y8 c8.1 安装 263& N. |, \% @) l
8.1.1 MySQL软件包 264- w1 V6 W% m& J9 T0 x: c+ p
8.1.2 安装后的配置 266! d2 H) ]% G" F- S( l
8.1.3 安装后的故障修复 270% S3 P/ A  n( K3 Y. |
8.2 MySQL管理 270# J- U$ c& r" S6 S; c. n7 j  g
8.2.1 命令 270
9 N- O4 U4 P* J1 \- O8.2.2 创建用户并赋予权限 2741 @. [/ T- g5 [9 m4 C2 b! }
8.2.3 密码 276
- Z/ E/ A6 x7 Y  R! h8.2.4 创建数据库 2768 x# X! _1 {; C3 Y
8.2.5 数据类型 2777 M/ ^2 a7 e' x4 g' f* H1 e) ?
8.2.6 创建表 278
" o5 ?7 u4 y7 d4 P4 }8.2.7 图形化工具 280  S& J7 N- W2 O3 ]! v; y1 m  y
8.3 使用C语言访问MySQL数据 283% I; Y& I  @9 A9 h/ Q; x
8.3.1 连接例程 2835 p( T1 z! G; N, u
8.3.2 错误处理 287
& l+ T: z3 O+ t' F  Z# Z8.3.3 执行SQL语句 288
0 |6 U% B% `. ~2 V" U+ K8 S8.3.4 更多的函数 3010 {% A9 z2 m$ J9 _, ?
8.4 CD数据库应用程序 301
- V2 j; D/ Y4 T0 ~8.4.1 创建表 3026 {3 @) ~* b2 Q. y3 J4 P
8.4.2 添加数据 304* o; Q9 Q+ U% ~( x3 F. d. G
8.4.3 使用C语言访问数据 306
( n- H' F. W+ S4 s$ N8.5 小结 3162 o# }9 H2 `+ T7 n
% @. g7 _% h' ?9 b4 x3 ^  c
第9章 开发工具 317
7 @7 \. A9 `, F: }/ Z. Y3 _! z; A1 S8 m3 K3 Q/ T. e5 o  \0 Q
9.1 多个源文件带来的问题 317
0 O5 t" i" a" R- }  p; l9.2 make命令和makefile文件 318
& T2 ?  @$ G  p# f$ }9.2.1 makefile的语法 318
+ R/ v  r2 e6 T9.2.2 make命令的选项和参数 318
. ^) G6 A, }& M' q  H9.2.3 makefile文件中的注释 321
2 v6 E6 v  c. ~) c- k9 ~: e9.2.4 makefile文件中的宏 321
+ l1 J  W- c* l+ m9.2.5 多个目标 323
4 w) u( w( M# f9 I9.2.6 内置规则 325
$ w" v/ M( ~% b3 b0 n  c0 r- F9.2.7 后缀和模式规则 326
8 x0 V* c# d, P+ A- ~: u/ X5 y/ B9.2.8 用make管理函数库 327
3 I, I, b  L& u; e* v. ^: \9.2.9 高级主题:makefile文件和子目录 3290 g% [5 O* m( D
9.2.10 GNU make和gcc 329- G2 ?) }8 {+ c. g- n, k& x
9.3 源代码控制 330
! {6 G; f5 [4 C4 o* h9.3.1 RCS 331# M* C* T3 _9 u8 p% L
9.3.2 SCCS 336! O+ K, G2 K0 N. |4 _" D
9.3.3 RCS和SCCS的比较 336
" J9 |2 c# A+ M- ^3 C" U9.3.4 CVS 337
3 h" z% j% Q; l# Z2 n0 a9.3.5 CVS的前端程序 3400 [1 E0 b6 p* e" q
9.3.6 Subversion 341
* a' Y9 B7 Y! `  I3 O: x9.4 编写手册页 342
9 ?1 K% K9 J$ R- b# H; W7 O1 E9.5 发行软件 345
  R- e: r1 j8 \3 \' x! o' a) k+ n- X9.5.1 patch程序 3453 Y6 a  j" _. H( P
9.5.2 其他软件发行工具 347/ b6 R/ [! X7 M+ y
9.6 RPM软件包 349
$ V6 P9 Y/ m' _# n, n9.6.1 使用RPM软件包文件 349
2 u8 q' R) M$ L- g9.6.2 安装RPM软件包 350% H9 x) M5 x: |$ |+ S4 X( N, r
9.6.3 创建RPM软件包 350
. v, J5 O5 h: k8 r% K+ M9.7 其他软件包格式 358& d4 ]9 a4 K  ^( h2 u
9.8 开发环境 3586 Z6 k& m5 o( K( j0 I8 Y; B; `
9.8.1 KDevelop 358
2 m, b; @3 u' e! p9.8.2 其他开发环境 3608 s: E: R' p! |0 i
9.9 小结 360
% \) ~/ D; \( k1 r  I7 o/ m+ ~
5 C; p; h2 @, g2 g第10章 调试 3612 o) {% o5 n5 k: ~0 ?% G
8 [; F) z3 |' u% y2 Q7 N: u
10.1 错误类型 361) X, O' S+ Y3 q/ ?7 U" R9 o8 h9 z
10.2 常用调试技巧 362
$ J. |4 ^# S+ M1 X+ C3 e! a4 b2 }" `10.2.1 有漏洞的程序 362
; ^9 R0 u/ \0 e3 r! ?10.2.2 代码检查 364; K9 l# M2 `, w, O
10.2.3 取样法 3650 B0 b  C# t/ x* U; z1 }* n
10.2.4 程序的受控执行 367
/ v8 Y8 e( [, c0 z9 n10.3 使用gdb进行调试 3680 l+ w4 Y& j2 k( b/ a" _# s0 J6 H
10.3.1 启动gdb 368$ p9 I) ]/ \7 N% C; p" W
10.3.2 运行一个程序 369* m! Q! O+ q* s: E7 D
10.3.3 栈跟踪 369$ W' k1 Q' T' _" m' u. g" M
10.3.4 检查变量 370; z; B2 c1 s0 \! H
10.3.5 列出程序源代码 370
% r; o8 \! @8 ^2 _# h# ]10.3.6 设置断点 371$ ?5 a$ i" t* E3 u4 L/ r  i' F, G$ w
10.3.7 用调试器打补丁 374
2 l: g2 f. L1 _! Q$ {) K% `! W+ V10.3.8 深入学习gdb 375
* R( s; a: Y) P& m10.4 其他调试工具 375
. D7 Q; O/ q* D5 j" L10.4.1 lint:清理程序中的“垃圾” 376
5 Q* {0 C2 Q2 X( L) ]/ u1 ^10.4.2 函数调用工具 378
! Y# l! `; a  R' H( o* F$ G10.4.3 用prof/gprof产生执行存档 380
' \) V* v7 v7 `4 b' v) ~. p4 I: ^10.5 断言 381
5 |  a+ B5 P, D* i2 \8 r) g9 R/ k10.6 内存调试 3839 k8 a" [0 U8 a2 B; r/ |  Z
10.6.1 ElectricFence函数库 3831 x( p# S% F' T+ T- Z" x; u
10.6.2 valgrind 384  D  z/ N9 ^( `9 M
10.7 小结 387
/ q2 l4 G0 [. S6 Z" g5 s, x: L# x2 N+ v' M
第11章 进程和信号 388
  ^4 v: f! U. E0 {$ Z0 j5 P% w% }- M, L+ _/ J' ]
11.1 什么是进程 3885 {: ]0 _6 ]. b* w
11.2 进程的结构 388
# ]* h+ r9 X: ^: |. P5 X11.2.1 进程表 390
8 i' V$ F8 |6 Y# c2 @3 r11.2.2 查看进程 390
4 W, R6 G' d- B! G; z1 ^) ^' B$ w11.2.3 系统进程 3919 z$ ]' v5 o5 u
11.2.4 进程调度 393: G5 t8 n2 {8 B0 B
11.3 启动新进程 394' T# k" r. F. [! b8 S/ m
11.3.1 等待一个进程 399
* L% H- x" E$ D8 C* W# k1 r/ ~4 }11.3.2 僵尸进程 401
, p3 T0 Z2 }% C/ M% |/ y11.3.3 输入和输出重定向 403
3 `' A6 T2 Y9 s+ ^0 i+ `: Y. ]11.3.4 线程 404
0 X7 O. ~1 C/ s" P  T5 s0 O  P$ J& f- f11.4 信号 404
" H+ |3 [4 O5 |1 ^' t11.4.1 发送信号 408/ k8 u8 q& w  H9 A1 S$ D1 \
11.4.2 信号集 412
# W# u. F9 E% d4 c. T9 T7 B6 ^11.5 小结 415
; @6 k$ k# n+ o! E7 [/ t" z6 t& }0 ~
3 Z- X( c2 V/ s% ?, u第12章 POSIX线程 416/ d" x7 q) O0 A# G
+ D+ T& P' H. ^7 E' b4 z! `% o
12.1 什么是线程 416/ ~- C, b( D% o, v+ I9 v" a
12.2 线程的优点和缺点 417) {* t/ d/ g3 L% _& E1 W
12.3 第一个线程程序 418+ P1 ^4 {5 X, D
12.4 同时执行 421
9 Y, `! `+ |9 ], b3 m12.5 同步 4239 ~* M% Z' _. m0 c
12.5.1 用信号量进行同步 4237 K5 u) q& J9 B+ G) O4 m
12.5.2 用互斥量进行同步 4276 f' b5 y" i8 Q  [; K
12.6 线程的属性 431/ o$ }$ `6 Z0 F+ L
12.7 取消一个线程 435; b- Z# ~! J( g
12.8 多线程 438
5 |' b+ U3 @; ]! @3 G. q4 F12.9 小结 442
" @' i# }) s+ V4 ^" u- _2 F
4 I6 ~. o$ q1 r& o第13章 进程间通信:管道 443
, N7 F5 ?% x6 M) j; l
) R; U- k# u: a- c& [13.1 什么是管道 443
, W8 ~2 h# n" B. X% n13.2 进程管道 444
/ ?6 [" L, n) s# e" P( S3 s13.3 将输出送往popen 4459 {1 R0 T- z0 Y1 ~
13.3.1 传递更多的数据 4465 Z1 D0 W+ t/ m3 W- V% A' F
13.3.2 如何实现popen 447
( A3 O- d) l2 U. b" J13.4 pipe调用 4498 ]1 H- Y1 J: |. V2 f3 \. U
13.5 父进程和子进程 451
/ }6 l% i9 P+ a! s13.5.1 管道关闭后的读操作 453! b: x7 x4 E! g8 j- u- l: D9 f
13.5.2 把管道用作标准输入和标准输出 454: R) }/ w& e& z2 z/ v# n- a! u
13.6 命名管道:FIFO 456
+ b) D3 t! [; M- |13.6.1 访问FIFO文件 4585 i' _% D, u" ]/ @; m$ @5 L
13.6.2 高级主题:使用FIFO的客户/服务器应用程序 464
- n+ z- y: h0 k, ~& q% l% J, h13.7 CD数据库应用程序 4682 ]; m" G5 y4 B0 p
13.7.1 目标 469
( i- d! ]7 g$ P, f. E: {/ m3 h) ]13.7.2 实现 469; l4 u1 [; b. v* \- ]+ M; g
13.7.3 客户接口函数 472
- ?/ @( o* Y6 g2 k13.7.4 服务器接口server.c 478
6 s3 J* p' E3 A6 ~13.7.5 管道 481
, W! O9 F( }- J% h. W. f& x/ C% G13.7.6 对CD数据库应用程序的总结 4874 \. P8 g7 G+ o1 H$ B5 v
13.8 小结 4874 q0 K- l' m# s3 C' k) o* `

: r4 r8 D" i5 b* B第14章 信号量、共享内存和消息队列 488% M  W" k5 T2 E* P2 t" S
( U2 A- X! ]; q( f4 I
14.1 信号量 4889 D! [$ A5 c% e3 V9 x
14.1.1 信号量的定义 4895 c  s- X" C+ Y  J! `
14.1.2 一个理论性的例子 4890 T& u4 O" b5 t0 C% a6 {$ D: \
14.1.3 Linux的信号量机制 4903 |" I5 C- w) J8 j4 j$ `1 U/ U4 K$ Q
14.1.4 使用信号量 492
6 E$ m- ^; t+ d* I* x9 n7 X14.2 共享内存 496
- \( w) A  V* g* I/ ^14.2.1 shmget函数 497
- ]8 w* w& B; m) j5 H9 l% v14.2.2 shmat函数 497
  }: Q/ G7 ~. i2 l14.2.3 shmdt 498: f- ?/ \2 t0 }5 [. q1 F
14.2.4 shmctl 498
% ?& I7 `" o9 M7 e14.3 消息队列 502  Q2 i5 n* q' X0 d
14.3.1 msgget函数 5025 M, Q1 q: q/ B4 [* d  G% e- t
14.3.2 msgsnd函数 503
4 L+ c0 u* y  x) _14.3.3 msgrcv函数 503  x2 |9 `9 h1 N7 j6 Z) i
14.3.4 msgctl函数 504% M3 @/ O& ^0 ~  ~! H! O/ d- i
14.4 CD数据库应用程序 5079 t. |' e  m, W8 v, H
14.4.1 修改服务器函数 507
+ |- U1 Y: n) \8 r) X, @2 M14.4.2 修改客户函数 509
- _5 G2 X! E3 e# z5 r14.5 IPC状态命令 511
" d% V1 B8 l9 ?14.5.1 显示信号量状态 511
- Z/ r) W4 O/ H9 j8 _3 W! T% ^14.5.2 显示共享内存状态 511$ q0 p* T) Z  B/ y; n7 L* n7 n
14.5.3 显示消息队列状态 511
4 r, }( a' s* Z3 V' V9 I14.6 小结 512
& L, B4 I. }5 i4 n1 p
0 E# Q' A+ h  ]) A7 V0 V2 N7 L第15章 套接字 5138 A- s% ~9 l1 V8 _- D
. E3 G$ h6 s0 Q; ~, @! X6 @: \
15.1 什么是套接字 5133 t" \/ ]% l  L) L; S
15.2 套接字连接 513
! c$ S+ |% m/ S15.2.1 套接字属性 517
8 h2 p9 a# I( T' T7 M$ n15.2.2 创建套接字 519) J# v$ g0 M7 L, |  ]
15.2.3 套接字地址 520+ ?' ~1 m4 m( k, S$ j* c/ b0 e
15.2.4 命名套接字 520
$ o3 p" q8 S; Q) Y( \* I15.2.5 创建套接字队列 521; I+ w8 I; |# p
15.2.6 接受连接 521
& U. ~$ u) c: @) v15.2.7 请求连接 522
  T2 A2 q. o5 z0 \! R( V15.2.8 关闭套接字 5232 E1 y! Q# `5 N( |6 D1 b2 u1 p
15.2.9 套接字通信 523& N4 s! n8 R; [% w- ^. N0 W$ x
15.2.10 主机字节序和网络字节序 525: V" N+ C+ o) E; c2 J
15.3 网络信息 527. K' z% K% B* R- {; {! x3 k7 d* T+ ?- @
15.3.1 因特网守护进程(xinetd/inetd) 531& S( F8 y  S( L+ h# J* P1 I
15.3.2 套接字选项 5339 S. [# \$ B1 D  W3 i
15.4 多客户 534
& w: f; |( g* R8 A( C1 f7 h, g) x$ y) r7 R15.4.1 select系统调用 537
) ^; s/ p' N& J15.4.2 多客户 540) A+ _1 r2 N% f. U9 J. V) y
15.5 数据报 543
7 G# o/ s/ C9 @, }8 C! f& V15.6 小结 545
' o9 w" Y7 E+ F. ^3 e2 K0 D% H8 m. m$ V4 v2 A
第16章 用GTK+进行GNOME编程 546# g7 W0 g# r. i, Q- M& O$ m

! S( V. @3 M7 Y( n2 A16.1 X视窗系统简介 546# Q9 o; V& [# k
16.1.1 X服务器 547; f5 N  S' N- {+ J
16.1.2 X客户端 547* J  X0 \3 C. b
16.1.3 X协议 5478 f' H3 h1 a/ v
16.1.4 Xlib库 547
; A* t8 W; F: U. E$ A( c( l9 C: B16.1.5 X工具包 547/ M! N, i% g" L4 v7 b
16.1.6 窗口管理器 548: K6 |* ?! H& d  Z4 h7 k+ g& I
16.1.7 创建GUI的其他方法——平台无关的窗囗API 548
2 m$ l, S7 }$ n16.2 GTK+简介 549
8 ?* [7 ?( I- Z9 ~& b. U16.2.1 GLib类型系统 549" \* O3 I" E  Z- z' V% v: g
16.2.2 GTK+对象系统 5501 _" I" O! B% ~1 v7 F# q& O
16.2.3 GNOME简介 550
3 R9 r( P% w$ S% p16.2.4 安装GNOME/GTK+开发库 551
0 W5 Z/ j# k- ]/ t16.3 事件、信号和回调函数 554
, t- @% X  {# r( ?) \16.4 组装盒构件 556
7 Y# {6 N+ X$ W) h' n8 S8 I16.5 GTK+构件 5590 W6 q' S- s. _$ s# K9 P
16.5.1 GtkWindow 559
3 b% d( H/ e: s  d% x) Q16.5.2 GtkEntry 560! ?2 @$ h+ ]: h4 K! w. z
16.5.3 GtkSpinButton 563, c7 `) k2 w: V3 P* z2 Q* h2 ?2 k
16.5.4 GtkButton 565! ?+ |- U% H0 U8 c
16.5.5 GtkTreeView 568* W1 i( \5 b+ q/ T$ l. ~
16.6 GNOME构件 571
$ k( v/ T: r! f) G6 c& B7 C% N9 j16.7 GNOME菜单 572
% k) i3 _* A0 c- u( h+ [( W16.8 对话框 576
2 ^0 l# N1 X0 p' ?! I0 W+ W16.8.1 GtkDialog 5778 c8 M7 ], G5 l/ M, o- [2 ]( c
16.8.2 模式对话框 578
: O: v% I; }7 w! k16.8.3 非模式对话框 579
- T/ y' `9 L/ g* k) @" o# S9 _16.8.4 GtkMessageDialog 580
  x0 L5 F1 O- s6 r16.9 CD数据库应用程序 581
% {$ F1 a2 S- y4 }5 s16.10 小结 592: ?2 C- @& a5 ~5 ^$ {& b

7 w, q9 T2 G' T第17章 用Qt进行KDE编程 593
  x9 g: n; T7 `( G. f$ o" b; D4 V
! J; `4 m, K' u$ G. }17.1 KDE和Qt简介 593
0 d' ?/ t9 ^, _' `+ e17.2 安装Qt 594
- v5 H" Z1 y+ m/ K17.3 信号和槽 5967 E  o7 L; k3 D
17.4 Qt构件 602
+ ?; E  I" U3 }" L17.4.1 QLineEdit 602
, m* Z! r' z( M( o17.4.2 Qt按钮 605: \3 c* o3 ^5 g
17.4.3 QComboBox 609
- y  @& Y- o+ |$ t: x17.4.4 QListView 613
" {: k3 [. |( J* Q8 X0 x17.5 对话框 615) [7 z, l6 R& F/ W% k) O6 z$ I8 V
17.5.1 QDialog 6156 `; M* ^: P1 y/ ?
17.5.2 QMessageBox 617
/ [- [8 N: Y2 ?7 W8 D2 T17.5.3 QInputDialog 618
4 b' J$ q% \0 K+ `- @, h9 Y! W: Y& U17.5.4 使用qmake简化makefile文件的编写 6203 h1 m( @: b, r' B
17.6 KDE的菜单和工具栏 620# [; c, X; z' m! U5 B
17.7 使用KDE/Qt编写CD数据库应用程序 624
; n: h# f+ a: n- {. A. M17.7.1 主窗口 624$ L8 H% Q( e1 R( F2 u# W8 }
17.7.2 AddCdDialog 627# p7 u1 l0 u5 L2 {# v
17.7.3 LogonDialog 6299 ]; ?6 O3 C+ f
17.7.4 main.cpp 630" {( V6 D2 I6 s: x; y  h" Z5 k
17.8 小结 6320 r4 R$ L5 t# t/ q; `, c* k' z
1 b4 z9 B7 M( a' q* W
第18章 Linux标准 633( G! @3 K" i7 ^% W. m- ?# C) N
* O( f& {1 Z1 L! A, i$ Q
18.1 C编程语言 634
% e# |* G; ~0 S) G18.1.1 发展历史简介 634# x* K3 S% R) L; t: b
18.1.2 GNU编译器集 6349 M1 C$ Y4 V+ r' r
18.1.3 gcc选项 635
9 y2 g+ W+ L: G- S$ N. s+ t18.2 接口和LSB 6362 E. k' u; ^! _+ p
18.2.1 LSB标准函数库 637
8 ~" z$ g) O; V' Z# ?8 S" e5 O* H6 }18.2.2 LSB用户和组 6381 A( U2 X0 A7 k
18.2.3 LSB系统初始化 638
% I) P" R5 B% i) k. N18.3 文件系统层次结构标准 639
& a$ Y! x( S+ g- R6 B) I2 m18.4 更多标准 642
% |; i$ i" V% M- I) {18.5 小结 6424 N% u5 S; g2 W, Q
7 x4 s! e: O$ w6 S
* u1 h! A5 U) V- Z' N! Q

评分

参与人数 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 | 显示全部楼层
看起来是不错啊
" t" l3 M; B7 J- m' L  M0 R9 t
想知道小甲鱼最近在做啥?请访问 -> 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-4-27 21:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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