鱼C论坛

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

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

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

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

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
' j8 d/ {( g. [  ]. h6 w. |
$ q" U0 n) x+ G: ~" ^2 H% \% N
书名:《Linux程序设计》
6 M$ a! b# [" {4 f/ H% R: G作者:马修 (Neil Matthew),斯通斯 (Richard Stones)
- c5 G0 e) M' n- ]  \& r译者:陈健,宋健建
3 R  L# O/ }) \8 Y0 G0 r出版社:人民邮电出版社! E8 h0 d; g9 @) x& `# N
出版年:2010年6月1日(第4版)
  i5 S8 H& K+ f! J! s定价:99.00元
' n: t" i7 R: r. ~装帧:平装- \; L, i7 [" r
ISBN:97871152282154 {/ R, N% H  C7 K. X- P- W$ \
2 q9 m( }  f; a' [  e5 H
购买链接:
8 k; I+ r" N, c0 q/ a. s# @
1 ^: V* M! ?0 v+ k( G$ l% s

9 z2 Y1 g+ Q: i3 g+ n: {+ c亚马逊(Kindle)-> 传送门
3 C- R: @7 C2 o/ n$ J( B& u! {: u1 J% }5 Z' U
亚马逊 -> 传送门
: C& O; W4 K0 t) X+ @& V) L1 j7 \5 v9 Q+ \* ], I, A
当当网 -> 传送门
0 a3 q: ?# ?2 P3 l& j$ `! M
, {, z( A% O' y6 d京东 -> 传送门  @& V  m# @8 P
" T. ]8 C) ]8 A3 S
天猫 -> 传送门% f) _! Q; d/ B# D
4 [7 q1 {3 J6 r* E- U! U

' `4 A2 w! ~9 ~. x内容简介:
9 g" X* W7 I& P7 S
# B" x& E/ l6 G7 T( I# i
  q9 D: S: r+ X
《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。
5 c, t" g7 y# p' H. E1 x9 R, v, N8 I+ b8 g/ D; T( G- ^+ V" n
《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
$ p) R0 ?! g$ K- G
' p1 @8 }; m$ e0 Y
: m" Z" `7 u5 Z/ a) l) C. f3 C目录:
9 c8 i6 ]" v0 t: r' I8 `
9 Y" a& \( u/ ?. G
; ^8 l% |( {5 {2 ?3 T
第1章 入门 1
3 Q8 I$ Q1 Z  |% q9 z
/ |% H# F* h; _( b4 {1.1 UNIX、Linux和GNU简介 1
  s6 K6 R4 ^+ M7 D1.1.1 什么是UNIX 1
; k( w# S9 Q" m% D1 E9 s1.1.2 什么是Linux 2
2 b( U" r* o0 U! I1.1.3 GNU项目和自由软件基金会 3
' N3 x+ T2 [( z5 K" g! |" J2 k1.1.4 Linux发行版 3: B1 A4 X+ U+ H& e
1.2 Linux程序设计 4* E. t5 Q- e6 Q0 U9 J% `3 }9 Z
1.2.1 Linux程序 4
# d5 n% z4 J- @1.2.2 文本编辑器 51 H& \$ C8 f0 ^2 k& M( g( {
1.2.3 C语言编译器 5
1 z% E- B6 a# ?3 o/ q0 j; q1.2.4 开发系统导引 7; L- N1 }' L5 e
1.3 获得帮助 12' O" @" A9 L9 _
1.4 小结 14
- B9 B# ~" l) y& Y$ z/ R
! d# H1 G# [3 H/ p- N第2章 shell程序设计 15
, `/ @3 _# G/ G- x$ I4 l5 I5 p$ K  k. @8 m3 l! }! g; z
2.1 为什么使用shell编程 15
  H+ k1 r1 U& c7 W5 a  C2.2 一点哲学 162 g# ^0 y7 F! N
2.3 什么是shell 16  ^: c" u' ]9 e
2.4 管道和重定向 18, m+ h( `0 T8 F7 v' [: p
2.4.1 重定向输出 18
4 r+ A3 t! v+ {$ F# O2.4.2 重定向输入 19! Z/ E: @2 i2 }# ]+ s
2.4.3 管道 198 I3 I+ S, Y" e! x' ^
2.5 作为程序设计语言的shell 20
8 G3 p- U1 w, S9 E; _/ ?8 t2.5.1 交互式程序 20& l1 ~" F  t. q
2.5.2 创建脚本 21
* d& ^; E4 t$ _7 Q# F2.5.3 把脚本设置为可执行 22
4 p+ _" l7 Z5 L3 L2 [6 N5 D2.6 shell的语法 23
& D$ l3 e* T/ |/ H' V. _; l& J2.6.1 变量 23' P1 a2 P, ?2 E! s3 H
2.6.2 条件 27
+ m' o( x1 X0 ]2.6.3 控制结构 29' a2 I2 y  V4 m
2.6.4 函数 39, ]8 @8 a. ^1 t! w# O
2.6.5 命令 42  c- B: `3 K5 x: W" |, G0 `1 N( @
2.6.6 命令的执行 58
" _5 l1 I* ^( j& O2.6.7 here文档 61
6 H/ z6 h/ |8 c$ y4 l2.6.8 调试脚本程序 631 M& G- i; B5 D
2.7 迈向图形化:dialog工具 63
2 c& o7 s3 o9 _. P4 {- c# \/ V. n2.8 综合应用 68) M+ [2 {6 C- [* \! ?! r& K) X& X
2.8.1 需求 68
2 O" n6 O+ E& F# U$ Q/ M2.8.2 设计 68
7 r  j% g9 M9 L! m$ I7 q# a2.8.3 应用程序的说明 76% C' ~# z- r/ S- T& l  ^5 ?2 n4 p
2.9 小结 77
% `" J. d/ Q! k+ s! w
. b. f" n( i2 u, A! F第3章 文件操作 780 p4 W; _+ `8 w( {3 I" v( W

  _6 L% z# {+ e  S5 T% w/ {- t4 o! q3.1 Linux文件结构 78
9 c5 K) x" J7 x! w: e3.1.1 目录 79
7 l6 k: j* i" e: d9 u1 R7 \3.1.2 文件和设备 79: K7 `! _; ~8 a6 H& q+ ]
3.2 系统调用和设备驱动程序 806 r# c! a) T( ]3 v& }
3.3 库函数 81/ Q& B2 o& {( B; v; b- f2 e2 R
3.4 底层文件访问 82, ]* m/ Q3 m& F6 M7 h
3.4.1 write系统调用 82" d3 h% o3 `; T: b% n+ X6 [# @- J
3.4.2 read系统调用 83
+ `. [3 U( H1 B3.4.3 open系统调用 84) G" d( {( A6 T! w* Q) Y6 R1 t
3.4.4 访问权限的初始值 85: w  r9 |) H! K- y
3.4.5 其他与文件管理有关的系统调用 88
7 P: f4 u: Q6 S7 D# P  C& H3.5 标准I/O库 91; P+ P- k1 |6 |/ K2 I
3.5.1 fopen函数 91
7 ~6 A9 m" h; C9 L2 O& z/ C5 _3.5.2 fread函数 92
; c0 K6 P" s8 G! z% Q3.5.3 fwrite函数 92
# v0 P5 J7 {7 }6 ^) _8 B% P3.5.4 fclose函数 92
- f$ }1 T/ I" k  r- n! E3.5.5 fflush函数 93
$ e/ s; B9 w$ {/ `3.5.6 fseek函数 939 W" n& A, l3 Q5 b7 Q$ y, {3 a9 ?, G
3.5.7 fgetc、getc和getchar函数 93
) R2 y( m' }( m3.5.8 fputc、putc和putchar函数 94% ?& @9 w  ~! M- B( h3 z
3.5.9 fgets和gets函数 94  q8 k/ |" Z- A
3.6 格式化输入和输出 94
4 C: H$ E* b2 N/ b6 k0 d3.6.1 printf、fprintf和sprintf函数 94$ f7 x5 l. l/ @" r- Z' L& h
3.6.2 scanf、fscanf和sscanf函数 96, e' \9 S" }: m. _2 C" O
3.6.3 其他流函数 98
$ M: f- V8 l0 Q2 E' {: U2 e3.6.4 文件流错误 99
1 ~6 h# b& s" H4 r0 w3.6.5 文件流和文件描述符 99
" Q2 J: Z7 e8 J4 Q6 Z& s3 r; X3.7 文件和目录的维护 100
8 B+ F! H! d2 C$ S0 s% R3.7.1 chmod系统调用 1006 r+ l; l5 D9 y& F
3.7.2 chown系统调用 100
( \: z$ [1 U5 W( Z$ e" D3.7.3 unlink、link和symlink系统调用 100& m2 K. b' r5 {  h
3.7.4 mkdir和rmdir系统调用 1017 ?% H  K: p' T; ^6 C, `( u3 ^; O8 z
3.7.5 chdir系统调用和getcwd函数 1015 I; @( u- C6 M  j: n9 O
3.8 扫描目录 102& c$ O. e2 v, [' H  j; ?# e9 n2 C
3.8.1 opendir函数 102) I. p0 V  `. v" H4 N4 e
3.8.2 readdir函数 102
% P5 U) ^! x$ J! Y3.8.3 telldir函数 103
8 f2 t$ n# v5 s$ b& ^3.8.4 seekdir函数 103
- e, v6 _, V+ L# W+ p! L5 Y- Q1 y3.8.5 closedir函数 103
5 k" `8 ~. W* D" d' `* E7 s6 b3.9 错误处理 106
, _  B+ X. J4 _; L' W3 V+ F3.9.1 strerror函数 106
5 V4 l6 C, O# t3 |3.9.2 perror函数 106
/ \& p+ k8 ^! i4 V  k- F" E5 V6 N6 E3.10 /proc文件系统 107% ?+ n0 h. G5 ~! U  g
3.11 高级主题:fcntl和mmap 110* V9 q: Y# t6 b8 s
3.11.1 fcntl系统调用 110
8 T0 E2 A3 A1 t7 d3.11.2 mmap函数 111: u  \+ ~3 n. Z
3.12 小结 113+ y4 y" ^7 r+ s4 O4 r/ W7 t$ n
/ ?$ I+ q; k! g
第4章 Linux环境 114
1 {8 X/ l4 ^8 }. \- C8 O3 D0 g4 o( g6 J# c
4.1 程序参数 114
2 h, ~& m4 F9 Y$ u" [0 ~4.1.1 getopt 1163 H4 y7 m( Y/ y' \+ S1 Y% \4 ?
4.1.2 getopt_long 118
3 ~  `. J1 y+ u7 B6 W4.2 环境变量 120# n: ~! W* H" L" m5 I+ A" w2 s
4.2.1 环境变量的用途 122
7 S9 e$ c4 \8 g9 T0 q3 ]  T4.2.2 environ变量 122
) k- W1 V) X5 A1 u+ L% f  E4.3 时间和日期 123; q8 a+ O. r6 |! R  w* x
4.4 临时文件 129! K6 j% t0 q, Y7 |& O
4.5 用户信息 131* l8 O/ Y6 {8 Q' v
4.6 主机信息 134
" ^3 o8 u) F* P% R# X4 I, W4.7 日志 135
& C- j! H4 j$ u) h4.8 资源和限制 139
( ?0 x& ~, p0 I! B9 l4.9 小结 143% S, `0 s0 C$ s6 q3 F# B0 ^
- P2 s$ i+ x: k: Q" R2 q2 D
第5章 终端 144
* t+ J. W' y7 W  T' V
% m3 z1 ^4 s/ B8 C1 o8 L0 D- F5.1 对终端进行读写 144
; U6 C' ?- E5 i+ @2 B2 ]( l1 _5.2 与终端进行对话 1496 ^  q% i6 l* W3 @) T+ W* u9 `; U
5.3 终端驱动程序和通用终端接口 151! A) t; ~; v. ?
5.3.1 概述 151
8 g# z; I  E. S1 A$ k/ i0 V. R9 k( s( O5.3.2 硬件模型 1512 b4 Q& v$ j" x+ }! f) Z8 }2 p: y- U
5.4 termios结构 1523 P" y- K. d: M  l: n$ T) i- s  K6 j
5.4.1 输入模式 153
  v: ^3 _6 V: v  C: i9 o, ]5.4.2 输出模式 1542 V* Z5 B1 f9 l
5.4.3 控制模式 155
" j' l# _/ Q, X7 I# \1 Z5.4.4 本地模式 155- P. x$ M6 X" g
5.4.5 特殊控制字符 155
6 I/ m  P+ L( O: f5.4.6 终端速度 158
7 f: o& {; u& E/ b5.4.7 其他函数 159
$ `' d: y' Z- T7 J7 f( O5.5 终端的输出 162
! ^* {/ C7 J0 u! Y' ^& M6 }) |% M5.5.1 终端的类型 1634 h( T$ d( E- |8 T, Q& k& X
5.5.2 识别终端类型 163
$ {# ^9 [% z+ r( N8 S5.5.3 使用terminfo功能标志 165
  }$ r: C: }/ V( U, D; J5.6 检测击键动作 170
$ Z* r$ [5 B2 y+ u  N5 C  J8 H, b5.7 虚拟控制台 172
  T' |6 h. l* n/ e  P5.8 伪终端 173' x7 |6 q8 F0 |! _! \- D: N
5.9 小结 174$ X( t4 B/ D, T( M# \
/ t7 ^) o# g, z; G
第6章 使用curses函数库管理基于文本的屏幕 175
4 u; A7 \5 i; k/ m* L2 C! m3 t$ b- y1 ~! O2 J3 z7 X; j- ]
6.1 用curses函数库进行编译 175
/ Z8 i! e" q$ W& A0 J3 n6.2 curses术语和概念 176' l: l: d$ }- V2 p! [
6.3 屏幕 178% t8 {" O. F5 A
6.3.1 输出到屏幕 179
% t7 C% L7 c) K8 P6.3.2 从屏幕读取 180
8 q* f. I8 ~" E% D: E2 h$ ^- m$ R6.3.3 清除屏幕 180
# ^' T+ O) d3 f( y6.3.4 移动光标 180
& o1 m+ ^; {" t0 ?4 R& A6.3.5 字符属性 181& x! O) D1 m; W5 o0 {
6.4 键盘 183& Z* Y; W" s0 K( @5 Q1 i( W
6.4.1 键盘模式 183! l5 M5 ^7 k0 A2 D
6.4.2 键盘输入 184* o- i2 E# `+ Q. j. }
6.5 窗口 185
; B$ @) e1 [, N6.5.1 WINDOW结构 185
9 ~' \. S" T# X+ B  I6.5.2 通用函数 1867 ]2 K3 J- S) v1 m8 t
6.5.3 移动和更新窗口 187
$ X2 H0 \3 k+ m$ A+ I' _- T5 h0 R6.5.4 优化屏幕刷新 190
& B  ]8 A: H0 ]7 `4 j6.6 子窗口 191
- x- s; c# G* ?6.7 keypad模式 1932 I/ p7 a- _) T
6.8 彩色显示 195& |  I* Q; i5 b: J& m' B( ^
6.9 pad 198
7 n7 l& _4 r# F# U2 M6 L0 o% E: c) b6.10 CD唱片应用程序 200$ l7 t- N; w2 S: q5 w0 p/ [
6.10.1 新CD唱片应用程序的开始部分 2007 r# }; M  j" l7 t6 R- K3 ~- I
6.10.2 main函数 202/ a( c, K1 M1 x: k' e- a# p$ k% Q6 \
6.10.3 建立菜单 203! D( X: N: D* s3 t/ _
6.10.4 操作数据库文件 204
7 S$ u$ E$ `2 S, }4 d: Y6.10.5 查询CD数据库 209, R+ Z0 P  O7 [1 {- a0 L
6.11 小结 213
8 ^& R1 C5 `% d" T6 n
; ~0 L% w9 n  p" u1 G. `& K* M1 P第7章 数据管理 214
8 u; u3 M; {2 f% [) {$ x0 B
; Z' ^( @2 F" G7.1 内存管理 214
! T$ x0 N$ ^0 E6 S/ S7.1.1 简单的内存分配 214
# E5 \7 r6 f2 j9 ^! b7.1.2 分配大量的内存 215
7 Y- a: g; r5 N- H7.1.3 滥用内存 218
# v6 t7 L! F" A/ t8 p7.1.4 空指针 219
( ~! F# ~, S7 i- S0 v+ G7.1.5 释放内存 220
( }: @: i- \) [+ v7.1.6 其他内存分配函数 221* k: d% d) U- z) D' |' B
7.2 文件锁定 222
. t( o  m' Z; q# g8 |& K7.2.1 创建锁文件 222# c( Z! l4 M1 y2 t. f
7.2.2 区域锁定 225$ O6 A9 J( }9 f) {( G5 r
7.2.3 锁定状态下的读写操作 227
' L" ?/ O" ^- s9 O6 M7.2.4 文件锁的竞争 232
3 @' @6 @+ \: V+ `7.2.5 其他锁命令 236( i2 q: p7 P4 q4 |9 |( `
7.2.6 死锁 2361 e8 K: }+ r5 t0 b
7.3 数据库 237' b! \' Y5 Y  i
7.3.1 dbm数据库 237& l( K6 I$ q- t& ]2 H( ?
7.3.2 dbm例程 2380 }# a: ]% B1 |; I
7.3.3 dbm访问函数 239
: g  l4 ~) {/ S9 a7.3.4 其他dbm函数 242
. x& h: a' b+ A5 x- D: P: u" v7.4 CD唱片应用程序 244
. s. M' M1 i" W5 `, z4 G  p+ w7.4.1 更新设计 244# L! \# s8 G' [; R6 v
7.4.2 使用dbm数据库的CD唱片应用程序 245
: g3 |* P3 t4 a, ]2 B7.5 小结 2625 j7 W3 V2 S# j1 s% N# V0 M8 r
# r' V' L& }+ ?7 d3 B
第8章 MySQL 263& N2 z4 _  O8 |0 h
0 _) L% ^6 J' ]" l7 W5 W1 i# [$ w
8.1 安装 263
) X; B9 L* Y, M7 S. L% M% W# K+ Q8.1.1 MySQL软件包 264* x- m. t9 f4 x
8.1.2 安装后的配置 266
! |9 y# k$ N8 r- k0 D# t$ r8.1.3 安装后的故障修复 2707 ?& G7 m  U+ i: W) _) r! X6 c
8.2 MySQL管理 270/ }3 {1 @- W' c2 P
8.2.1 命令 270- C; l: {- ^  P8 E
8.2.2 创建用户并赋予权限 274
* B# ~, |4 p" s# N& J, x8.2.3 密码 276, q) A$ V. z9 N/ A* `6 v* k
8.2.4 创建数据库 276
4 W1 D; L5 a" i8.2.5 数据类型 277! W) S- a& m3 J7 D
8.2.6 创建表 278
: A6 `; i  a% A% D) K# {8.2.7 图形化工具 280. q0 O6 C8 J! v
8.3 使用C语言访问MySQL数据 283
1 U# K6 c0 q8 N7 D( {+ Q8.3.1 连接例程 283' d; n% t; `$ u; U5 E
8.3.2 错误处理 2877 r/ x/ l' @# S; E5 X" m. q
8.3.3 执行SQL语句 288
/ ]$ d3 _! g$ P3 c* u8 u8.3.4 更多的函数 301
" J" {; x7 V; h' N& @# L8.4 CD数据库应用程序 301$ [- a1 A! @5 \
8.4.1 创建表 302) b4 O3 ^: u5 E1 U9 e8 h
8.4.2 添加数据 304
& V, n! l4 R+ l2 b- ~4 p8.4.3 使用C语言访问数据 306
7 a% F# k) i: L0 T% n8.5 小结 316# ?9 K& M4 f* t0 m, H8 j
  z1 ~# q' ?- Y. @! |1 x. a0 a
第9章 开发工具 317& }2 ^! J! s! x7 _; F% Q: X
% p. m# C; }. M6 a* Y1 o
9.1 多个源文件带来的问题 317
' X3 _+ ~& W1 w0 c0 E9.2 make命令和makefile文件 318: i# y$ g2 d+ z
9.2.1 makefile的语法 3187 B8 }' s. I  S2 e9 ^
9.2.2 make命令的选项和参数 318) j, S6 f! i' G* P/ E9 J
9.2.3 makefile文件中的注释 3216 [6 V. R3 i9 Q! q/ _" k
9.2.4 makefile文件中的宏 321) f. f& L$ @) O! a4 x/ J- J
9.2.5 多个目标 323# X' |; Q0 K- t. j  f) U
9.2.6 内置规则 3255 z+ h1 t+ o: P& K0 e; z5 @
9.2.7 后缀和模式规则 326
$ q" A& @- M2 d- C7 e7 L7 U9.2.8 用make管理函数库 327
9 y) y6 ^+ B! B8 A9.2.9 高级主题:makefile文件和子目录 3292 ?6 v8 \5 s$ R; f* y- f' {
9.2.10 GNU make和gcc 329: I; m6 @- }+ v
9.3 源代码控制 3308 P% y3 k* C; E4 Z9 {9 I. f
9.3.1 RCS 331# x/ a* x) @& ~; {$ g( \' n, g
9.3.2 SCCS 336
( P0 |+ L7 S# H) ~) @7 s1 B9.3.3 RCS和SCCS的比较 3362 ?3 f  I7 d. `3 B
9.3.4 CVS 337
7 j/ q7 @8 }, P# l2 t' e; [# V9.3.5 CVS的前端程序 340, L, V- y$ A% p( i3 w
9.3.6 Subversion 341
+ w8 \) l0 o0 O2 ~9 u8 h7 g9.4 编写手册页 342
6 z* s9 W* k9 \# n9.5 发行软件 345/ C* v0 `% `3 j
9.5.1 patch程序 345
( k( ]; f# i& h! [. c$ M1 e9.5.2 其他软件发行工具 347
; d5 r) c6 I8 u9.6 RPM软件包 349- O- K5 T  ]: R8 J
9.6.1 使用RPM软件包文件 349& U; W& U4 t6 c
9.6.2 安装RPM软件包 350
. G  ^; s! a( @8 P! D) o3 Z3 k; @! i9.6.3 创建RPM软件包 350
5 S$ a0 S, c% |. s9.7 其他软件包格式 358/ I. P# ?$ \% U; ?" L
9.8 开发环境 358
, A  c$ ~/ f7 A7 B& w' f9.8.1 KDevelop 358
, u* g- e, _( _$ k9.8.2 其他开发环境 360% c. v2 S, j0 H7 `1 r
9.9 小结 360
5 k1 J# _; [3 l% J( U
' S+ H9 {4 u1 m6 U第10章 调试 361
, t2 ^3 O8 T4 u- M$ H* W* p8 W) k. y# T6 ]2 l6 C  D
10.1 错误类型 361
3 e* F/ ]8 v9 ?$ ?10.2 常用调试技巧 362# W, q% O/ P, r% S# Z7 x3 m
10.2.1 有漏洞的程序 362: G. ^5 u+ K4 F( e2 a
10.2.2 代码检查 3646 w4 _1 W# ?" V0 y" X
10.2.3 取样法 365
4 r5 Z9 T. J5 {  _10.2.4 程序的受控执行 367! s$ d4 @1 _7 b
10.3 使用gdb进行调试 368
: N6 u' ]# u% P8 s' s& p4 |0 i6 J/ l10.3.1 启动gdb 368) D5 }  ]: d5 d2 a; H
10.3.2 运行一个程序 369
" J! I' C' f# E) X) x10.3.3 栈跟踪 369( c' q8 s% w$ A* E, M% l
10.3.4 检查变量 370
2 }, F/ C8 H/ ]! `10.3.5 列出程序源代码 3701 @$ `' D( k2 F; ?2 u% @
10.3.6 设置断点 371
7 G1 ?  q$ B+ c" c6 r2 t' h  m10.3.7 用调试器打补丁 374
( R. a; T# o) G- R4 K10.3.8 深入学习gdb 375. d! R- o. L9 w
10.4 其他调试工具 375
; D1 Y% l7 e6 Y8 {$ L) z% C+ f10.4.1 lint:清理程序中的“垃圾” 376  b  P6 X' V9 }; [. {5 I
10.4.2 函数调用工具 3785 M0 I8 J6 U; B- p  ?
10.4.3 用prof/gprof产生执行存档 380  M5 |7 n7 O8 i8 v; P# }) |; n. T9 X, G
10.5 断言 381
1 [3 [, r/ N1 u( g7 M! N10.6 内存调试 383
* ?# S# s8 c: `0 p1 B7 ~8 D10.6.1 ElectricFence函数库 383+ _9 a5 S/ c' I  {
10.6.2 valgrind 3841 S- ^8 J( Q* k% h. M+ ], _
10.7 小结 387
9 E' U/ O/ [+ p5 _, i4 u
2 D% D  C: {4 @' r第11章 进程和信号 388
$ r& ~* v  _# k) _
5 f# C( \/ z0 p8 X: q11.1 什么是进程 388( U. k" b# D4 G9 i& ^$ |% ^
11.2 进程的结构 388$ r3 U% B0 `! J& X. Y& x9 F' y3 R- x
11.2.1 进程表 390' D$ P* d: H8 ^. i, R
11.2.2 查看进程 3900 Y. S0 C  E5 U3 N7 J; t$ F6 y
11.2.3 系统进程 391& V5 P" {( k: l. K# t7 U, T6 N( G
11.2.4 进程调度 393
& N$ |* j) h  r; e5 B# q; M) ]! T, U4 @11.3 启动新进程 394
! n+ q  w4 ^; E" ~11.3.1 等待一个进程 399
& Z! b" V5 U6 C7 Y" g4 m3 }) z% ]11.3.2 僵尸进程 401* z- _+ s0 s5 O7 r4 V, a
11.3.3 输入和输出重定向 403
* V$ i/ j  T+ j& ?' R* X) z11.3.4 线程 404
1 {- I" i3 v$ J7 T  v0 f: F11.4 信号 404
4 ?3 F, S0 n: m# d2 H11.4.1 发送信号 408
7 f% i# y6 t: K$ z11.4.2 信号集 412
) p; g! t: W0 C) y6 r11.5 小结 4151 h0 C& \/ Z% p- q& m
2 E. Q: H. D8 l
第12章 POSIX线程 416
& v& N! ^! W4 _0 A! }% U* a1 J' v! k6 S
12.1 什么是线程 416
0 I- `1 G% A- G' L1 p/ L  E+ G+ I# O12.2 线程的优点和缺点 417
8 p$ Z0 `0 ]" }& }: d. {0 Q12.3 第一个线程程序 418
7 V0 Y8 G  Q1 y) j% @" R12.4 同时执行 421% w# R  C1 @* L# g4 m7 k
12.5 同步 423
; J3 H: F- L/ k- G' g4 g12.5.1 用信号量进行同步 423
* H* n& @, s/ w$ n12.5.2 用互斥量进行同步 427
$ t- F' {9 p2 A% ?12.6 线程的属性 4318 ~3 F& \, F& D, Z. Z
12.7 取消一个线程 435
9 b4 L7 o9 b- [6 C, N) E12.8 多线程 4388 X+ a+ o# S+ Z- ^# [
12.9 小结 4420 o8 v5 A  h& n$ L, V0 N9 W

' K; e" \% f2 I' f  y第13章 进程间通信:管道 443) d" s8 ~& O9 @. {

! e& j9 \  s- d  A13.1 什么是管道 443+ [& m' t2 _# }' l" S9 h
13.2 进程管道 444
2 Q/ u& L/ V7 m3 b" p  s& x5 z13.3 将输出送往popen 445" @# \1 C; U8 R4 ?. x
13.3.1 传递更多的数据 4465 t% F$ `  F. r# M
13.3.2 如何实现popen 447
. h- Y0 ~# J" t13.4 pipe调用 449
% I( _- Y+ G7 f& s+ a8 s13.5 父进程和子进程 451. j  l( ]* i2 a  H
13.5.1 管道关闭后的读操作 453  l/ s# {# x6 _
13.5.2 把管道用作标准输入和标准输出 454. a- g: X! S# w) B" d7 r2 Y, c
13.6 命名管道:FIFO 456
4 n# u% a. }; I. p13.6.1 访问FIFO文件 4580 O0 M) y, h; X0 i/ d
13.6.2 高级主题:使用FIFO的客户/服务器应用程序 4644 Q5 @. l% j: [( C. ]% I% Z
13.7 CD数据库应用程序 468
+ z# f" A" T0 t, X4 R: p13.7.1 目标 469
3 W& E5 m- U: W8 t4 S7 |13.7.2 实现 469. B1 I) u8 n+ \! O
13.7.3 客户接口函数 4721 Z: Z0 m6 m; n' F% N
13.7.4 服务器接口server.c 478
" x# L" U0 u3 b8 h! M( _13.7.5 管道 481& M( m: q2 T6 e! ^- [8 q
13.7.6 对CD数据库应用程序的总结 487
: T- c( u& y# s0 h0 J' I13.8 小结 487- Z6 E- M: s6 [4 U! H, i* E
$ j8 R& X2 J1 ^" _2 D* R7 k
第14章 信号量、共享内存和消息队列 488
$ {( M5 Q# v" w2 k/ l6 c! k6 I- J9 U7 h3 z: Z" n* W
14.1 信号量 4884 s# S+ ^" z2 s
14.1.1 信号量的定义 4895 U9 J4 h% a" @2 S2 K& M6 c
14.1.2 一个理论性的例子 489  [1 J: ^1 J. |5 f; F
14.1.3 Linux的信号量机制 490
1 v# B5 ?0 r* C  Z' R14.1.4 使用信号量 4922 a7 p: m8 K7 W. L: i2 Y
14.2 共享内存 496! x6 I( S. e# g' Z- G- O
14.2.1 shmget函数 497
& v& |8 q/ u# x14.2.2 shmat函数 497
4 E; K( [( p' J$ @/ |14.2.3 shmdt 498
) Q' O0 E$ g: T2 u7 M& E, q14.2.4 shmctl 498( J0 _  y. h7 F. L8 o
14.3 消息队列 502
% C: @5 p+ }, ?6 o% i" t14.3.1 msgget函数 502
- f) d" ]2 @1 P9 ?- u14.3.2 msgsnd函数 5039 B  W* E/ {  D: v( e
14.3.3 msgrcv函数 5037 Y9 ]# f: [/ i$ p3 b" d
14.3.4 msgctl函数 504
: E, O8 I  z$ Q( L% I/ I) m14.4 CD数据库应用程序 507. R  \' m9 T- B6 N( @5 u0 S6 b
14.4.1 修改服务器函数 5070 P$ `3 h1 {) v! J1 H/ l
14.4.2 修改客户函数 5094 R) `: H: y; s) _& S
14.5 IPC状态命令 511. B% F. T4 t4 g
14.5.1 显示信号量状态 511
% i3 F! Q  o  x. j14.5.2 显示共享内存状态 511  Y; S9 j3 Q' e
14.5.3 显示消息队列状态 511
: Z) \6 {) Z2 B14.6 小结 5125 A6 G3 d3 f' u' y# v6 Y, T7 N3 c

  o$ x. U8 Q3 x( D第15章 套接字 5139 r7 _) ^( H! y0 h0 {- T: V
4 o& p/ M) G8 [4 Q: B
15.1 什么是套接字 513- c; L  @9 m) d- P! O. s9 Y( B
15.2 套接字连接 513$ ~* V' n# O% [" r% {$ K
15.2.1 套接字属性 517
% a0 e& d+ j7 A% v- v% k9 m15.2.2 创建套接字 5198 r( L* [$ C1 }( [" F( [  b
15.2.3 套接字地址 520/ b7 m6 F8 \3 Y$ W& t& g/ B
15.2.4 命名套接字 520
& h1 H) ?& v; E+ r15.2.5 创建套接字队列 521+ H1 `+ x2 D; H5 d
15.2.6 接受连接 5216 z6 n4 k. v. W+ A5 y5 @
15.2.7 请求连接 522/ o0 x) t) z, D" H
15.2.8 关闭套接字 523$ K: b" M4 U9 Y8 L9 F1 r
15.2.9 套接字通信 523
- ?. x7 [3 y3 D* {8 \15.2.10 主机字节序和网络字节序 5253 d$ L! s* Y, p5 z  \
15.3 网络信息 527
# H5 B2 Z4 ], h5 I15.3.1 因特网守护进程(xinetd/inetd) 5312 t7 r* t0 g3 K: G; s
15.3.2 套接字选项 533$ I2 ^, C$ T$ g/ H
15.4 多客户 534; L3 Q* K4 j2 s8 X- M+ ]
15.4.1 select系统调用 537
3 X7 I! {% M( g) q- W15.4.2 多客户 540
" X0 G8 a; P0 x# M/ e3 ~15.5 数据报 543
5 f7 o+ |+ ^% J15.6 小结 545) v2 `* [0 ~  V' c8 v, g) w) B
' c( K7 X3 j; j  n5 `* a) ^0 }
第16章 用GTK+进行GNOME编程 546
. l# k# C2 ~4 i- t/ h% ]8 s' J! n; s) Z( Z, ^  D3 X& y- P
16.1 X视窗系统简介 546
; r" ]( A7 W) [# s; n4 |16.1.1 X服务器 547; I* J* v# u; c- W
16.1.2 X客户端 5470 n5 S% H7 Q) t3 I: b
16.1.3 X协议 547
' z3 Y: P6 I2 P6 t. N: H16.1.4 Xlib库 547
2 b! G0 ?9 m  D$ d8 ~1 U16.1.5 X工具包 547  i% C4 ?# U. p
16.1.6 窗口管理器 548# `6 |! H$ @# v
16.1.7 创建GUI的其他方法——平台无关的窗囗API 548
% w* b; h/ z' l16.2 GTK+简介 549* Z& ^$ [& x9 ~" e  P
16.2.1 GLib类型系统 5495 O1 ]  t6 @8 _- ~- c
16.2.2 GTK+对象系统 550% J/ s4 c2 W. P9 s0 R4 J7 D5 G
16.2.3 GNOME简介 550
6 q2 f% C4 |. @2 S) e/ T; i16.2.4 安装GNOME/GTK+开发库 551; D" o5 z7 l! G
16.3 事件、信号和回调函数 554
" r( x1 d8 j6 b% @16.4 组装盒构件 5564 y- A0 G+ ^: P4 C: t# s! I# i
16.5 GTK+构件 559
4 f# {4 }& p9 V7 H16.5.1 GtkWindow 559
3 \9 X# |. }" P( \+ W8 o2 ^1 W8 j16.5.2 GtkEntry 5600 Q" b; w9 x! R* ^% E( A
16.5.3 GtkSpinButton 563
, z  I! p/ U$ c% P- d1 h6 {16.5.4 GtkButton 565/ c  G& R: v4 S! v
16.5.5 GtkTreeView 568
$ ?' ]2 Y# j4 G- J& f  j16.6 GNOME构件 5718 A2 x  l) P2 D- M( Z
16.7 GNOME菜单 572
& i$ [; e2 o) ?$ u# s) M16.8 对话框 576
7 {6 Z6 C9 l& K$ Z& @. z16.8.1 GtkDialog 577  _( U& l2 `1 r; H: l% e3 z" S
16.8.2 模式对话框 5786 o3 \6 ]. r: v: ~
16.8.3 非模式对话框 5799 u9 f! g! x6 h, v
16.8.4 GtkMessageDialog 580
/ Q% @, e; [. p( p16.9 CD数据库应用程序 581
  t+ J4 r2 G. L4 d16.10 小结 592
1 T* `8 f- x$ x  A" _" c: T4 a( e$ ]+ z1 N5 y1 x" R( d
第17章 用Qt进行KDE编程 593+ |4 Y  Q, g1 T9 p: p  L
# C) A, K5 l$ |  P: ]
17.1 KDE和Qt简介 593- p# z$ Y8 ]. G/ s
17.2 安装Qt 594
. q0 w7 u/ `4 D0 f17.3 信号和槽 596
; B+ G, E0 \6 G! T" L/ s0 D17.4 Qt构件 6026 H8 G2 d& |5 Y- _: Y7 _% Z
17.4.1 QLineEdit 602  j8 ]! X4 `8 U- D: A4 Q
17.4.2 Qt按钮 605, i3 E7 F2 s3 F6 \( _: n, b
17.4.3 QComboBox 609" H3 w5 Q. {0 U7 }& ?) I$ r' X
17.4.4 QListView 613
5 m: H) q' g" f  C: B17.5 对话框 615" {3 ~$ ]. |) e+ ~
17.5.1 QDialog 615
5 s. F" y; L  |. j" X, u2 I17.5.2 QMessageBox 617
4 ]; T) i8 C& Z+ k% X4 B  P# d% |17.5.3 QInputDialog 618
8 ?! ?) I6 m% p/ S" W  p17.5.4 使用qmake简化makefile文件的编写 6203 ?* f7 y+ J. x. e" `2 M, j
17.6 KDE的菜单和工具栏 620# N( p  W- {. W# ^9 o0 U' U
17.7 使用KDE/Qt编写CD数据库应用程序 6247 G$ J2 @( w: g5 \9 a! l, u) X
17.7.1 主窗口 624
& C9 e* S$ K$ g$ A/ ]5 @17.7.2 AddCdDialog 627
$ z& l" P4 J7 }. \$ ]* Z2 P8 d6 ]17.7.3 LogonDialog 629
7 f( H- s" R& S! ]$ b: l0 T17.7.4 main.cpp 630* f! `( a4 P' Y9 U- i3 `9 R1 z2 X) W
17.8 小结 632
- J: @( e& d& u$ o# |" g / D; J, ]. G& J( |
第18章 Linux标准 633
" p/ {" m" P' k
9 d: G3 _5 u0 _8 h3 m# A% ]18.1 C编程语言 634! T8 `9 R+ x7 T1 v0 q# a& P( d
18.1.1 发展历史简介 634
: }# A4 _' V0 m8 |, Z+ D18.1.2 GNU编译器集 634
! p% D+ E# w9 ?" ~18.1.3 gcc选项 635" S0 M+ b" u' G
18.2 接口和LSB 636
7 G6 n8 G# k, U$ G+ b9 N; p; L1 @18.2.1 LSB标准函数库 637
  n" a4 ^1 T0 t: w; ^3 R18.2.2 LSB用户和组 638
- `! D" r% u" @. v7 s18.2.3 LSB系统初始化 6385 \4 x. b, |3 |$ ~* {+ D% o% _0 C( ?( h
18.3 文件系统层次结构标准 639
8 ?# s9 v8 t- s18.4 更多标准 642- s  D4 W6 p  C$ g8 C
18.5 小结 642& ~$ _0 S% V9 W1 `4 D
/ f# Z. B0 z. a4 C0 ]

7 l6 [) @9 _& ^

评分

参与人数 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 | 显示全部楼层
看起来是不错啊/ a" `( i, s6 `5 h0 u0 ]! L
想知道小甲鱼最近在做啥?请访问 -> 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-20 09:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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