QQ登录

只需一步,快速开始

搜索
查看: 1459|回复: 2

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

[复制链接]
最佳答案
154 
累计签到:2213 天
连续签到:21 天
发表于 2016-11-18 17:43:52 | 显示全部楼层 |阅读模式

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

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

; N; B+ \& p& U8 R0 s  p- c
3 m' h4 K5 `: v书名:《Linux程序设计》
: J. ^, ~" W; \/ d6 @作者:马修 (Neil Matthew),斯通斯 (Richard Stones)
; Q  u$ r8 _+ i0 b译者:陈健,宋健建
4 g- C$ j% T+ H% b+ b5 w% x, ~# k出版社:人民邮电出版社
3 v$ k* O8 w( m出版年:2010年6月1日(第4版)
9 w7 c' f( f6 S" u, R/ I. ]  n1 F定价:99.00元
0 i. \* x2 o0 L( g装帧:平装
7 B3 i0 M8 |: ~( vISBN:97871152282150 `# c7 y3 c, ?, q

3 t; s6 W' b$ e4 X. [& d购买链接:
" F" Q+ x  ?. w* _/ d. o4 j  @: k& K  E: F1 {

  `9 \* C& `( f  o5 W; D
亚马逊(Kindle)-> 传送门3 w6 F) q. p8 U) ]' i
& ?: @6 l- h# A1 O1 R9 e
亚马逊 -> 传送门
+ R: }7 B" U8 p0 V0 n0 N$ c
: e! R, @9 x6 W4 X( B2 k( h+ ~当当网 -> 传送门& B4 z+ Q+ {. P, J. F* j
4 I. K- l$ T! @2 f. M
京东 -> 传送门
& }: O' s7 ^* V7 K0 h( G+ ^# _4 p# [  }& o/ {  d, ~
天猫 -> 传送门
* f1 |/ \5 ~$ t+ v9 a. P1 {/ l3 R1 A& k! t
! K  \( M- c% E4 q  Y
内容简介:, i: p/ s/ g$ o2 B3 }- w$ P2 k
+ [9 ~4 x+ o- R0 `) u: W) l

4 @6 h. |/ Z0 n# C
《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。: u% `& S( F! @
, {) g+ t! H1 H- t1 w
《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
0 n9 m5 K: M' F+ Q
* y0 Q0 z- N, O& N0 G) T& _
! a. _$ C1 M' y6 h1 O  }/ W- J目录:
' G; c& u  ^. o9 L8 n- f* B9 K, F+ A: c5 _, h9 [! q! ?( O

) ~" b2 [& o# P* L3 o
第1章 入门 1
! i  \: `1 W; t/ H$ n7 m
( m1 r1 G- M3 W% V7 O1.1 UNIX、Linux和GNU简介 1
+ `( Q3 \2 t2 ^9 |1.1.1 什么是UNIX 1
: _/ K0 Z" ^  R$ ?' f; r4 M- i1.1.2 什么是Linux 2  k$ f/ K. ]1 K; v
1.1.3 GNU项目和自由软件基金会 3/ N: Z) Q6 ~, B" S4 ^
1.1.4 Linux发行版 3; f' G: Z" R9 |% m
1.2 Linux程序设计 4
+ l& w* q6 ?( K: _6 s1.2.1 Linux程序 42 _! \, G! n( z' h( \& o* b
1.2.2 文本编辑器 5
9 W. y/ e' i4 f, C% c5 h6 b$ x1.2.3 C语言编译器 5; K" j. [# P6 Z
1.2.4 开发系统导引 7
9 x3 b1 s0 p$ `9 V" ^+ J1.3 获得帮助 12
# s  T7 x' Z2 F+ [+ |+ G3 N1.4 小结 14& F& d) b* w& s4 B
3 ^! t% [. S% G4 u- }; Q2 S
第2章 shell程序设计 15& r: m. J& t, \' _" Y6 G& m

% ?3 _6 Z# X  \' P# c0 S) t2.1 为什么使用shell编程 15& V( V6 n( @- g+ o' y
2.2 一点哲学 16
  P( q: ]( H& N( M4 A7 j! O' o0 \5 C2.3 什么是shell 16' e1 x3 T: q8 O$ B5 ~0 U) y
2.4 管道和重定向 18- l0 I8 Z% E4 ^2 s8 B
2.4.1 重定向输出 18
8 \0 t& J: o( D/ l6 F2.4.2 重定向输入 19  r" O2 b0 T8 V
2.4.3 管道 19* h- Y$ Y4 c% M8 M1 {& v7 N+ R4 E
2.5 作为程序设计语言的shell 20
& O9 \0 G  ^2 K) m8 q5 g2.5.1 交互式程序 20, d/ {1 K! W2 G  u; K% o$ ^) f
2.5.2 创建脚本 213 `) o7 b) f9 o8 I2 d
2.5.3 把脚本设置为可执行 22" f& i8 q2 g( F' s
2.6 shell的语法 235 V/ @: \" |+ i
2.6.1 变量 23* g- p1 V1 O( s1 y: l: d$ G) [/ b2 z
2.6.2 条件 272 ^; T- b9 s' @. u2 c, X0 B& E
2.6.3 控制结构 29; k" B* J4 `9 r( P1 s
2.6.4 函数 396 ~+ j: ~  L2 B) h
2.6.5 命令 42" d8 A& j0 ~$ V- I( ~' B
2.6.6 命令的执行 58+ Y4 a- D. a3 I& c
2.6.7 here文档 61
- v2 W) ~% J5 G8 ?- O2.6.8 调试脚本程序 63
1 i0 A' P# }  R3 f, _# ~2.7 迈向图形化:dialog工具 63
% a1 y+ }- }- _; F2.8 综合应用 68
: U' g* n2 C+ a/ j3 Y. n9 A  F2.8.1 需求 68
6 \1 c; D7 C" S) N3 l2 F/ A2.8.2 设计 68
+ c" `0 Y8 o" p3 o# Y0 L2.8.3 应用程序的说明 765 ^' Z! C, ^, H1 n
2.9 小结 77  n6 B6 i. E7 N

) s# ~4 o, R/ [# p第3章 文件操作 78
0 g  O  u# b, n6 Y
" T. o( N6 m8 U# y3.1 Linux文件结构 78
0 t6 E4 K. R% w- I8 y- b3.1.1 目录 79/ G- v- j# r& n6 f6 x
3.1.2 文件和设备 79* f4 m- t9 J" F1 M2 B, w) z# f5 I
3.2 系统调用和设备驱动程序 80& z( Z$ g0 k8 c
3.3 库函数 81
6 c8 [+ E. j  V3.4 底层文件访问 823 M  d, U  Q3 O+ q0 ^( r8 I
3.4.1 write系统调用 82
# _2 ^3 v/ ~0 f8 F+ d6 a4 _+ r3.4.2 read系统调用 83- r$ Z, Y( I$ m2 A
3.4.3 open系统调用 84
% K% u, H9 X1 _% }& o3 {3.4.4 访问权限的初始值 85
9 d/ h2 M: S, R( x3.4.5 其他与文件管理有关的系统调用 88
7 X4 _9 x: a* }- p0 Y8 }- ?3.5 标准I/O库 91# R, Z, }; a7 Y& B
3.5.1 fopen函数 912 a) @7 W3 W6 ]: v* }
3.5.2 fread函数 92
8 z% k9 U3 Z( O" p6 G* a9 }3.5.3 fwrite函数 92
9 {% K) T1 S% K* y7 @' o1 ]" G3.5.4 fclose函数 921 |, l1 S3 T$ X2 R+ b
3.5.5 fflush函数 93/ x; P# }* ?0 G5 V2 `8 N
3.5.6 fseek函数 93
- }# s4 p! t/ Y/ N) |  ^3.5.7 fgetc、getc和getchar函数 93
: b  s( R, K) v" b( d- F8 q3 i2 E3.5.8 fputc、putc和putchar函数 94
  L  t. L. H8 O' N! o+ @1 v* X3.5.9 fgets和gets函数 94
& Q- U$ V: ~- W! Q+ U3.6 格式化输入和输出 947 N5 W; z0 m' y( F# [
3.6.1 printf、fprintf和sprintf函数 94* E8 d8 O5 {" f+ I  }0 [9 [
3.6.2 scanf、fscanf和sscanf函数 96/ x# p! w* a" k( I" }- l, B3 ^9 g
3.6.3 其他流函数 98
) P$ ~; |/ D7 l6 k- T& b7 A3.6.4 文件流错误 99. z# d/ u5 A/ d8 g6 z  b
3.6.5 文件流和文件描述符 99+ E6 @5 w" k. ?
3.7 文件和目录的维护 100
/ N8 B% N* n: n) [- v3.7.1 chmod系统调用 1000 J* |& @3 D4 j1 r$ D
3.7.2 chown系统调用 1004 k# Z# e, k6 Z, g& ^5 M# D* o: S5 ~3 E
3.7.3 unlink、link和symlink系统调用 100
  ^9 L  |* h: R1 |3 ]* P$ Q8 E+ t3.7.4 mkdir和rmdir系统调用 101" \# t$ Q0 w; \
3.7.5 chdir系统调用和getcwd函数 101* x; l; f  q6 a1 b
3.8 扫描目录 102
/ z! n4 b" M4 `' Q( u4 d4 `3.8.1 opendir函数 102
% T  V; ?3 Z9 U1 y3.8.2 readdir函数 1029 `. }5 A. l; f/ j) Q7 w7 @6 A" }
3.8.3 telldir函数 103  m, _% q2 P- C! W$ k
3.8.4 seekdir函数 103
+ B& U6 P& l" k9 \/ E: Y3.8.5 closedir函数 1038 g! f( k8 w* K! E6 W
3.9 错误处理 1069 ]5 K$ |9 p: H9 m; Q
3.9.1 strerror函数 106% r1 @. \1 [- J. Q
3.9.2 perror函数 106
# p0 i0 b( l. Q5 q3.10 /proc文件系统 107
& c1 Z, w( U1 ~) A9 X! r) M3.11 高级主题:fcntl和mmap 110, I! q; P% E" d! E
3.11.1 fcntl系统调用 110) K$ c) Y. \7 @) j" M
3.11.2 mmap函数 111
* {- r3 G& y& l* y9 c& s3.12 小结 113; V+ C3 u- P1 L' Y1 _2 M$ Y
* P$ o& i. o8 ], w
第4章 Linux环境 1145 G5 k. p2 f8 Q% |
1 a% a, ]) m5 l* E/ [
4.1 程序参数 114
( t. p0 }9 N! O- F. n4 V4.1.1 getopt 116
! h6 G! S3 L8 H8 e& u! k/ b% g4.1.2 getopt_long 118
* V8 u+ `. z/ H: L4.2 环境变量 1207 d/ p4 C6 q' K( [, ]
4.2.1 环境变量的用途 122
6 w, T9 I2 |; t* |8 ?, I3 j/ R. H4.2.2 environ变量 122
" t4 q1 X: r# O1 ]( {, r$ b4 d7 @9 g4.3 时间和日期 123
& M& B* L3 g' d) j* [. \4 p/ w4.4 临时文件 1291 B" L% G1 ~4 e$ ^* v  |- P* O- i) L
4.5 用户信息 131
9 I# f! i, ^) X% B! V( u3 r4.6 主机信息 1349 C* [1 C% k3 i
4.7 日志 1356 H1 a6 m8 _4 e( j8 p0 F
4.8 资源和限制 1396 V% i6 A8 D6 C" u- I
4.9 小结 143
, ^4 T$ {. K, v, ~
' d, H, I0 R0 j第5章 终端 144
& h; e- i" @* N$ R9 j; P0 d! P/ L6 _- c8 o! G& v5 S: q
5.1 对终端进行读写 144
6 l& p2 O6 U7 o! A6 d1 G5.2 与终端进行对话 149$ K+ a$ a9 ?% _! a- r; Q
5.3 终端驱动程序和通用终端接口 1515 }$ X8 o) e$ x! E; v0 ~
5.3.1 概述 151
+ l- m" A! [# X% S: g5.3.2 硬件模型 151; X, C7 S- {  P) `3 D' w
5.4 termios结构 152- h7 P3 K- K/ D! h+ y
5.4.1 输入模式 153
. I0 u$ z/ E; x! G9 f( m8 y& v5.4.2 输出模式 1549 X. c' L& Q1 |2 @6 j+ k5 s4 K" P
5.4.3 控制模式 1559 S8 `& g7 v: D' K
5.4.4 本地模式 1559 }, ^. h0 i" j" p; D) ]" W, \- m
5.4.5 特殊控制字符 1558 X0 m# }$ F. m) {2 ^" ]
5.4.6 终端速度 1587 m' C; q* K. L# ~& W1 `
5.4.7 其他函数 159
  O9 D( n7 I2 I' ^2 Q6 h5.5 终端的输出 162
, E+ ~2 q; q3 ?; n  L( D5.5.1 终端的类型 163! H' _1 O. Z, C4 K
5.5.2 识别终端类型 163
5 r* f4 I. G" q- m! K5.5.3 使用terminfo功能标志 1654 f3 h1 n2 @1 `+ G. M
5.6 检测击键动作 1702 n1 S# V9 f+ h6 A; L* L: D: M- F. I/ N
5.7 虚拟控制台 172
( B( a$ p- I, Z# R* x0 T5.8 伪终端 173$ a+ A8 C* u6 Z  j& @, E
5.9 小结 174
  A/ [- D9 i( ]  n6 B4 L / N- X" \5 l, Z* f# ]( [* \; r# E
第6章 使用curses函数库管理基于文本的屏幕 175
: m0 \4 ^1 {% p+ [" Y+ s
+ R* C  H  L4 v, l4 m6.1 用curses函数库进行编译 175; ?! E1 h. E0 n& H) x; F* Y
6.2 curses术语和概念 176
/ k- Q0 Y8 j2 \: Q' F6.3 屏幕 178
* I9 K) m+ ~# o; {7 a7 u6.3.1 输出到屏幕 179
% ?9 O4 ]0 W, _  s5 L8 z6.3.2 从屏幕读取 180
1 g* i+ k9 c6 n$ _2 F$ C6.3.3 清除屏幕 180
. ]& u; u" o7 q" n* Q9 L6.3.4 移动光标 180; E5 Z- G9 }( N+ d
6.3.5 字符属性 181* w  K( q, x, ~, r2 V
6.4 键盘 183. m! W0 v/ ]) M, z  i
6.4.1 键盘模式 183
4 Z; h, D% x! {) g# C7 ~  k! M4 R6.4.2 键盘输入 184
- J* z' V& @" `" \, C6.5 窗口 185
2 t1 r, ^8 }9 @$ Q: r; M6.5.1 WINDOW结构 185
- G; [5 f. @0 v2 X0 U6.5.2 通用函数 186
3 _5 c+ m2 T6 f7 [1 X' J6.5.3 移动和更新窗口 187
2 J: x, F2 ]& |/ f6.5.4 优化屏幕刷新 1903 C1 P7 S! _% n2 ~2 a' B
6.6 子窗口 191
3 o, J4 t* k/ R. h5 b- A' {1 c6.7 keypad模式 193
5 R- J* Q" q" f) n; o6.8 彩色显示 195
$ V' M1 M5 O- X  ^4 k6.9 pad 1985 h( m& S0 b8 }* E  K  l$ h
6.10 CD唱片应用程序 200
6 ]1 j. ^8 p# E# Z! M6 l- d6.10.1 新CD唱片应用程序的开始部分 200
4 x8 M, m2 E9 E8 j& m6.10.2 main函数 2027 j, ?! {0 z! K. \, v) b5 w
6.10.3 建立菜单 2032 J5 N6 x1 v. v
6.10.4 操作数据库文件 204" R1 f9 J: Y! x3 _; x) ]. c8 l
6.10.5 查询CD数据库 209* @* t- v% R& g: y; o7 A2 c
6.11 小结 213/ `9 n+ `3 M8 u7 E- Y2 _9 |  Q

/ d5 }; ^, w- }) S3 T# w第7章 数据管理 2141 V1 x# S" F3 y9 K- U& y
6 S, X/ Y( L5 ]" g
7.1 内存管理 214+ K2 H) Q7 ~" [
7.1.1 简单的内存分配 214
1 b5 ~) G2 A# d# j; S" m* Q# H7.1.2 分配大量的内存 2157 b* Y# K8 d7 |9 y! |
7.1.3 滥用内存 2183 l" u- ~; y3 x4 W' K7 B9 j, T
7.1.4 空指针 219
3 W% ~% e- I/ Y+ \' e7.1.5 释放内存 220
" a% b8 v/ r' C4 w6 B7.1.6 其他内存分配函数 2210 r, U2 A) D( L7 Z8 S2 q
7.2 文件锁定 2227 m  |8 @. p: f6 E, L3 ?! J8 T
7.2.1 创建锁文件 2225 e; Z/ g& [5 ]+ ]5 T( q/ Z
7.2.2 区域锁定 225, H% U% f/ i5 l
7.2.3 锁定状态下的读写操作 227
% a# g3 j8 ~/ h& {7.2.4 文件锁的竞争 2325 D# Q$ m; o/ R6 O! @  F
7.2.5 其他锁命令 2369 A$ `( I: Q6 y' Z( {
7.2.6 死锁 236
9 P5 I. v! N8 K) |  s3 x7.3 数据库 237
* y, {( M# q% n+ f0 S7 _' v+ W0 x7.3.1 dbm数据库 237+ N$ T# }3 y+ }2 K3 w
7.3.2 dbm例程 2387 M4 w- b* j5 x! i
7.3.3 dbm访问函数 239' o  p" u8 ]2 B( K. O) `
7.3.4 其他dbm函数 242
+ |" I; h$ ^. y7.4 CD唱片应用程序 2442 Z- R3 N( q2 ^+ W5 U
7.4.1 更新设计 244
" k0 ^5 K4 x$ p! q& |7.4.2 使用dbm数据库的CD唱片应用程序 245/ c, q& U6 I/ Z  ?9 A' y% Q2 e
7.5 小结 262! y( L4 g- {- R; q+ U9 ^, ~4 g
8 m" I. @1 L+ F+ u
第8章 MySQL 263
* X4 L% R+ S0 ^3 b* |2 w) i: r3 K2 c
8.1 安装 263
6 H( z- b9 L4 C5 S- u8.1.1 MySQL软件包 264
  O8 l/ W3 \5 C, a8.1.2 安装后的配置 266- S% [2 k2 u" r/ K8 e/ s" a! ^/ F
8.1.3 安装后的故障修复 270  j; M# @0 u+ s" W4 S
8.2 MySQL管理 2708 }. P) S- ?' b/ C9 D
8.2.1 命令 270
. ~' P4 T" e; k' ]8.2.2 创建用户并赋予权限 274# g/ |" g2 \: t! O6 B4 w' w$ S; q
8.2.3 密码 2767 c4 v& M- E8 P1 U2 b- [2 v
8.2.4 创建数据库 276
# Q8 Z7 m5 e7 d1 S8.2.5 数据类型 2771 [4 H! l" G) S( j: H0 _  i: C
8.2.6 创建表 278
+ q& \+ u4 Y6 u# j* s8.2.7 图形化工具 280' }5 O7 a2 d9 \! Z& r5 B
8.3 使用C语言访问MySQL数据 283, q4 q# u% m! @
8.3.1 连接例程 2838 N: j# S$ q' @8 l; c
8.3.2 错误处理 2877 M  H, N6 n* H' w
8.3.3 执行SQL语句 288
& u' V6 x0 q  G4 ?( f$ ?8.3.4 更多的函数 301) W' U' e" Y& C; t5 W6 B9 K  f
8.4 CD数据库应用程序 301) r+ `1 J, B" d( k
8.4.1 创建表 302% O. S5 A8 e8 B) Z, N0 t
8.4.2 添加数据 304! H* S. X0 K) F1 y
8.4.3 使用C语言访问数据 3061 \  @) C. T3 W. p
8.5 小结 316
& |/ L/ E5 g7 k( [/ X8 I1 b% W1 F. \0 k
第9章 开发工具 317
" k2 q) I3 s" ?+ }  X6 L: V  @4 T$ n& s- R
9.1 多个源文件带来的问题 317
% B* {, ?# k& ]7 M+ _" c9.2 make命令和makefile文件 3181 ~3 C. ]9 K& i3 T+ s9 n
9.2.1 makefile的语法 318
8 T1 B' {+ \* u/ W8 W$ E* [8 k9.2.2 make命令的选项和参数 318
. p& {+ z+ }2 P0 O& _( F9.2.3 makefile文件中的注释 321- G2 h$ J+ \. M% q6 C
9.2.4 makefile文件中的宏 321( c" K" h7 c1 F7 C
9.2.5 多个目标 3233 c+ p- j: q# w2 y
9.2.6 内置规则 325
  x: G5 D) ^+ ]2 o9.2.7 后缀和模式规则 326
+ b7 A. L, V2 E( W) p! k9.2.8 用make管理函数库 327
% `8 o5 w. _6 x0 U% m9.2.9 高级主题:makefile文件和子目录 329
3 ?' v2 f' t  r& ]# x- A9.2.10 GNU make和gcc 329
9 _: }$ h  m0 D4 v, I) z* d9.3 源代码控制 3307 a% j* J0 L: T+ I9 @4 N
9.3.1 RCS 331
9 [) }9 [5 i. |  F9.3.2 SCCS 336( f% e0 w$ o" }+ E- \' P' K! F. @
9.3.3 RCS和SCCS的比较 336' C, g* O- q$ k2 g: Z+ \
9.3.4 CVS 337
5 v7 o. `* s1 X" h. b' Q7 ~0 A9.3.5 CVS的前端程序 340
# p# r7 Q$ v( p  d% g) k0 o5 R9.3.6 Subversion 341/ u* |; `) x! v  S1 E% i/ S
9.4 编写手册页 342- r) ]7 M( c8 e. I6 o0 P2 X
9.5 发行软件 345( f5 m* O, ]6 y! X* Q5 w
9.5.1 patch程序 345
8 ]: S) |3 [7 }( j9.5.2 其他软件发行工具 347
5 j5 O4 N$ n' ?1 o* `9.6 RPM软件包 3497 _4 N9 N6 p9 S. {0 M
9.6.1 使用RPM软件包文件 349
2 @1 }, u7 y: `; i, ?4 F3 X+ w6 t9.6.2 安装RPM软件包 350
6 H# `8 n- ?# T. O: T, W$ k# l9.6.3 创建RPM软件包 3501 ~2 D4 a# n7 c  I
9.7 其他软件包格式 358; m$ t0 [. F0 @
9.8 开发环境 3589 f2 ]9 P! v+ g4 o$ A0 [
9.8.1 KDevelop 3582 q# q. V+ w( N, t! F+ B
9.8.2 其他开发环境 360
+ i7 V/ _0 q/ y& c/ B+ w" k/ j9.9 小结 360
4 P1 N3 h6 }% C0 W2 T4 w
: U- e$ X/ V$ Z7 V8 m( V' ~第10章 调试 361
2 \6 S. U, p( i7 j! I2 B
( M0 b) R0 A" C/ |. s10.1 错误类型 361
' R9 z- ?" `( d! B6 A- T10.2 常用调试技巧 362
6 D/ x' o9 ?* n- I. v2 g10.2.1 有漏洞的程序 362
* w  {2 b. e+ {10.2.2 代码检查 364
  p$ K# ?* q8 R. l* W10.2.3 取样法 365  O5 a0 C8 R- I7 V% K  P
10.2.4 程序的受控执行 367" o. c% O% L/ F, L6 w1 R
10.3 使用gdb进行调试 368" T8 C0 Q$ c0 H4 |4 i, j( V
10.3.1 启动gdb 368
% [- `3 S/ w9 J* V10.3.2 运行一个程序 369
& p3 w$ G4 l/ b0 K4 P10.3.3 栈跟踪 369
, d; f* {9 o6 w; g, A9 P! m10.3.4 检查变量 370- m1 J! h7 w: c0 x4 U
10.3.5 列出程序源代码 3702 L3 N4 C4 X9 k0 e2 l
10.3.6 设置断点 371& x- K% ?; ?$ T: d
10.3.7 用调试器打补丁 374
5 b+ x& k$ ^5 d+ o# L# B7 U: X10.3.8 深入学习gdb 375- K; Y0 l1 P4 b4 i. b) d* Q
10.4 其他调试工具 375
; o7 A  q% S3 h. p10.4.1 lint:清理程序中的“垃圾” 376
  f  p% X7 g# v# O' J. J" Z10.4.2 函数调用工具 378
# C1 q: C/ R( Q- X; Y* @10.4.3 用prof/gprof产生执行存档 380
6 G5 ^7 ~" G( }' ?6 [7 }  {  _/ A10.5 断言 381& O0 o1 `* \. r- X0 b' Q0 m6 k9 }
10.6 内存调试 3839 q( K6 ?# V+ W  s5 k* N( ~
10.6.1 ElectricFence函数库 3838 Q" x$ W$ |7 u
10.6.2 valgrind 384' q$ m3 H& m+ J8 i
10.7 小结 387
8 b3 F0 B6 z/ x( y3 l# ?/ Q, J( _, e
第11章 进程和信号 388
: |7 i! }" Y+ T3 M+ I
5 {" d. J9 Z5 j9 u% Q7 k11.1 什么是进程 388
. R" l1 F- t" H& U8 W: Y11.2 进程的结构 3880 s4 ^/ G% b0 d0 B, V1 Q8 z3 O8 h
11.2.1 进程表 390
+ H: u. Y4 B/ J% E+ X  b& x& c11.2.2 查看进程 390" J  W% K2 M$ e9 T: v* p
11.2.3 系统进程 391; i* v6 O. |2 [6 D2 n
11.2.4 进程调度 3938 K0 T  e, O1 l
11.3 启动新进程 394
. T% |  I! M4 N- O) }6 Q" X) P11.3.1 等待一个进程 3993 a4 z, ~7 a0 y* v
11.3.2 僵尸进程 401/ u1 R; D, T- f- d' T
11.3.3 输入和输出重定向 4038 g0 @" }+ G4 ~  Z) o7 h/ s
11.3.4 线程 404' T, ~4 \: A2 M. J, Z* c
11.4 信号 4040 i# U: b9 ^) H4 m- Z: p% Z
11.4.1 发送信号 408& o2 H: V/ n, y' d0 x9 {" x
11.4.2 信号集 412
# M% A( S  g; x( Q! m. D2 {  e11.5 小结 415
) p4 H$ F, b( J/ N7 I, f
% R2 q! K, D% I0 c/ c- X第12章 POSIX线程 416( ?1 s6 {/ e" X1 X0 r* F, n

' h: _/ w2 n* W! W$ K0 L12.1 什么是线程 416( i) C$ e7 T* t$ p0 |% i
12.2 线程的优点和缺点 417
; i" q$ j/ i" e! h; ]12.3 第一个线程程序 418, b, F0 g; f8 v
12.4 同时执行 421$ M. X8 o) o; H( o
12.5 同步 4233 ?6 W, E. x. Z$ w, I9 \" D
12.5.1 用信号量进行同步 423  w; [- `" V' }; }8 b/ B
12.5.2 用互斥量进行同步 427$ t: D$ @8 ~0 D* W( z1 I  ?- K
12.6 线程的属性 431
/ g9 ^  H* r5 T) }$ |12.7 取消一个线程 435( }& a, g8 D# q7 G3 m$ j
12.8 多线程 438
; p' R& j8 y' W# f12.9 小结 4426 c/ M6 D/ J9 k; C/ f* A5 U

) q$ L  l$ I# }% K# U+ Y/ G4 }第13章 进程间通信:管道 443
7 ^) f7 I( Z3 g0 ]7 H
% x5 B! f! f7 o! w/ m/ p- x) r/ |1 G13.1 什么是管道 443( H- U  }4 x% X4 t7 a8 B, c
13.2 进程管道 444& Q; w6 N3 Q. l! D! [, O) u+ G
13.3 将输出送往popen 445' d3 \( M' E9 _) l( d0 `7 u7 L
13.3.1 传递更多的数据 4466 N* u- ?+ C* p( a$ p
13.3.2 如何实现popen 4471 R6 O& j/ H) k! r
13.4 pipe调用 4496 w  ?4 q6 f3 @' s. e- @3 @9 a+ e
13.5 父进程和子进程 451
' ~* D! C) a2 {. D13.5.1 管道关闭后的读操作 453
/ {: ?$ e% n8 i, B  x13.5.2 把管道用作标准输入和标准输出 454
( Z- w, X" M. R# j; l9 _; i13.6 命名管道:FIFO 456+ ?- b5 I* z+ N. `8 G3 C, G6 {/ o
13.6.1 访问FIFO文件 458
. d( e  k- n+ [7 Q, i, x13.6.2 高级主题:使用FIFO的客户/服务器应用程序 4644 l. _8 ]) [$ D$ c( E" p
13.7 CD数据库应用程序 468& m8 r/ o- k/ n+ f: E4 _, s$ Y
13.7.1 目标 469& l, b1 I, w4 d: h0 |
13.7.2 实现 469
  V# l% r2 h& d- A; U5 v' h; N* {13.7.3 客户接口函数 472
, b3 K+ e) h' x13.7.4 服务器接口server.c 478! p% o" J- R% C4 z6 R5 H: z
13.7.5 管道 481
: X# i: d% D3 l* P4 T7 l- G/ b, @13.7.6 对CD数据库应用程序的总结 4878 q: R% x, P- y- v( U: ]
13.8 小结 4871 R$ {4 Y6 k8 Y* R/ O$ z1 D0 N

. v& M. W& R+ g9 R) O: I' G! J第14章 信号量、共享内存和消息队列 4882 O8 T- j* J' r& m) g

% k: h: R: N" u/ n4 Q5 z14.1 信号量 488
& a7 k6 s& o9 L14.1.1 信号量的定义 4898 N  }7 `1 f- w/ D( p, \0 i. v+ Q
14.1.2 一个理论性的例子 489
: E+ D2 z5 _! d5 P$ f14.1.3 Linux的信号量机制 490
- q3 A, B  J4 X14.1.4 使用信号量 492( c9 `% r- G/ A4 h+ y% ~& x
14.2 共享内存 496
+ D  y- u' W" B* m* R14.2.1 shmget函数 4976 g& ^- t# d2 Q$ L0 u" e
14.2.2 shmat函数 497& U, @% [  a- l  U) s
14.2.3 shmdt 498/ Z8 R4 @' X% v6 N% @' R0 w6 n
14.2.4 shmctl 4985 k, R$ D1 C$ y& M$ A9 {3 }
14.3 消息队列 502
  A- h5 `+ ?3 \* x$ B- b14.3.1 msgget函数 502
/ V, F2 S/ l$ q' s: [* y1 Z14.3.2 msgsnd函数 5039 n* R1 e* S+ {0 I9 u
14.3.3 msgrcv函数 503+ M0 |. O' W) F, P& g
14.3.4 msgctl函数 504! F4 Y- F# U( N: [6 |
14.4 CD数据库应用程序 507$ _5 \/ Q1 A# M6 t' I* L
14.4.1 修改服务器函数 507  G2 V# ^0 W- I: z
14.4.2 修改客户函数 5091 ]' b* i1 ~9 E3 ^0 y# U, Y
14.5 IPC状态命令 5119 t' V$ u" c) p" ^  f" g
14.5.1 显示信号量状态 511( W# J4 J4 W7 A" e, t! F* \* H* l3 Y; P7 o
14.5.2 显示共享内存状态 511
  v! \- E7 j5 h$ L( v- C/ A" P! ~; Y14.5.3 显示消息队列状态 511
0 z' X/ J3 M( A( b' L14.6 小结 512
. W# q' q  {  t. J, p$ n& P3 _6 c! ~( u
8 D! y2 o  S1 j( L7 Z6 C3 N0 ?+ Q# ]第15章 套接字 513
* R  t" u+ f; G: N) H  R7 h$ @% U
2 B& {0 h* ~, U% U15.1 什么是套接字 5135 R% ?! Y1 y2 C! m
15.2 套接字连接 513' J, T6 r& b$ J& `- ]1 n3 f! i% [
15.2.1 套接字属性 517
9 m+ l6 w- ?% n/ D8 o15.2.2 创建套接字 519# ^! {, \+ X& i' ^& D
15.2.3 套接字地址 520, j# m( J: Q; Y' T- ]8 l
15.2.4 命名套接字 520* d* b) |0 y# J' p  P/ {" R
15.2.5 创建套接字队列 521) ^: B0 r  i4 P5 {8 d7 m
15.2.6 接受连接 521
: N9 c+ L/ a8 K: Y% W& G15.2.7 请求连接 522
4 x% {# M0 H- t6 S3 T15.2.8 关闭套接字 523
2 _. n, w  L! Y8 B* ?7 p  c15.2.9 套接字通信 523
1 k: y5 \; \# G; B+ L' W15.2.10 主机字节序和网络字节序 525
9 o8 R5 x4 }3 Z15.3 网络信息 5270 ~1 h1 N. @3 M: [
15.3.1 因特网守护进程(xinetd/inetd) 531
/ }' l) H) L) T8 S# D# O4 P& E15.3.2 套接字选项 533
+ Z/ Z, |) O* f5 a8 z7 A15.4 多客户 534& l. k% U1 ?. I0 r# e: c  ]
15.4.1 select系统调用 537
6 ~6 u# }- B4 g5 h5 l% ]15.4.2 多客户 5404 w/ ]( M$ y8 I/ I. B0 A/ |1 x7 C
15.5 数据报 543
+ _; A) v- r. Q1 O( B$ U) W15.6 小结 545' G( i7 h7 Y& w

+ U2 j8 z1 f- |5 e第16章 用GTK+进行GNOME编程 546- M8 ^  d4 x% M5 G7 c0 O
0 }' f2 Y: K3 v- Y! r$ n
16.1 X视窗系统简介 546* [# a( M; u2 E* j1 W) a& R
16.1.1 X服务器 5472 V/ @( l/ v. e1 B; b
16.1.2 X客户端 547
: s* }  m5 R! c0 g) C16.1.3 X协议 547
! C8 R! k  k' J+ O% O- k16.1.4 Xlib库 547$ J; B( \7 Y  s4 n" ^
16.1.5 X工具包 547
) J- l# _, L6 b! N7 J" E% d4 u16.1.6 窗口管理器 548' E* E  v! q5 S1 ^: M
16.1.7 创建GUI的其他方法——平台无关的窗囗API 5484 R( W# Y9 x" i- b" ^
16.2 GTK+简介 549" T6 l# J. [& m- L0 j0 P
16.2.1 GLib类型系统 549
+ v+ q+ e; y. o$ ^) P! Z+ D: o16.2.2 GTK+对象系统 550
) Z, U; R- S* n0 z  J16.2.3 GNOME简介 550  o3 P, d  Z* Z/ G* u
16.2.4 安装GNOME/GTK+开发库 551" ]2 a; V8 M5 |* s. _
16.3 事件、信号和回调函数 554
6 B7 v8 e; R9 ?! l16.4 组装盒构件 5567 B) q3 ]$ [# j5 Q. s
16.5 GTK+构件 559" D4 E. x6 @$ U
16.5.1 GtkWindow 559; s8 n" G2 x5 o1 z9 b
16.5.2 GtkEntry 560, @2 G8 v3 \: J- S+ [
16.5.3 GtkSpinButton 563
5 k1 i: p0 L3 B# K16.5.4 GtkButton 565: U6 p" N- M% J6 A% Y5 p
16.5.5 GtkTreeView 568: ~! i7 L  Y( {2 ?
16.6 GNOME构件 571
' p! p2 I$ n  Q16.7 GNOME菜单 572+ N0 G/ M7 d! ]  Z1 n9 J
16.8 对话框 576* w; ^1 \! K1 _; L. n6 _* ^' R: q
16.8.1 GtkDialog 577! U; R" k  w  B5 J  d
16.8.2 模式对话框 578
' E. X/ X6 T; c2 \% i$ v16.8.3 非模式对话框 579. ~$ H" n6 k- i; S
16.8.4 GtkMessageDialog 580( H9 M  Q3 m8 \7 Q1 n* f# P
16.9 CD数据库应用程序 5817 w4 M3 p+ b1 T! G7 S
16.10 小结 592
# s4 ^0 o/ H4 T9 \8 n5 o, l$ D& f* k& A
第17章 用Qt进行KDE编程 5935 `2 ?9 g( u' C! x
, t% d  R% y' E/ U
17.1 KDE和Qt简介 593
& g$ ~0 Z3 V( Q2 v! R0 E17.2 安装Qt 5944 y1 ~) r# W8 P' o1 w: }4 H& I& ~
17.3 信号和槽 596
2 E( h7 x1 f2 M  A# F: A17.4 Qt构件 6023 a6 O5 F5 d9 I! t' v8 T
17.4.1 QLineEdit 602! J; E% ^9 [# h' B2 [- h/ S
17.4.2 Qt按钮 605
6 C* R4 O6 w6 A# M3 o5 x3 l2 r$ n17.4.3 QComboBox 609( i2 y/ e5 c9 }2 X
17.4.4 QListView 613
# X1 E& O4 A2 T  j17.5 对话框 6152 \% X3 i: Z9 ?5 z% V& @' ?
17.5.1 QDialog 615
/ B4 d, N, `5 e3 {: P! O) a3 ~* o  y17.5.2 QMessageBox 617
+ ~: V2 a; R' C: Q0 I% ]3 t17.5.3 QInputDialog 618
' K9 y0 I2 h/ K17.5.4 使用qmake简化makefile文件的编写 6200 L. Z5 a! H0 B$ N( `
17.6 KDE的菜单和工具栏 620% f+ g$ {2 U" _7 X3 [& I
17.7 使用KDE/Qt编写CD数据库应用程序 624
2 @5 w5 N( @1 W- q2 w# K5 d# r17.7.1 主窗口 624: a! y# }: B; P. a$ t8 [
17.7.2 AddCdDialog 627
7 o( V4 Q' g0 w$ l17.7.3 LogonDialog 6294 O, l% s( c7 E7 d9 J8 V
17.7.4 main.cpp 630
1 f+ ^" }( r  u  G7 {17.8 小结 632* m: R  C9 l% A' E
+ T9 U1 F+ G+ O
第18章 Linux标准 633# |7 h# @2 v9 f  |) I

; l' A$ y/ Y6 i. e- F  K18.1 C编程语言 634) }, I. q6 x6 V
18.1.1 发展历史简介 634. v! j) M5 }3 W; L: M
18.1.2 GNU编译器集 634
' R% a' \) u: }' {18.1.3 gcc选项 635$ }7 o& r5 d) ~* M( M- P
18.2 接口和LSB 6366 G5 v$ C, a. r/ i. W
18.2.1 LSB标准函数库 637* d( J: s4 t8 D, N( x
18.2.2 LSB用户和组 6382 D& [& T3 l3 o9 w) |) n# ?( E
18.2.3 LSB系统初始化 638% o, \0 r, ~2 r4 G4 j4 _+ C
18.3 文件系统层次结构标准 639
3 |8 N4 K) b3 e! ~18.4 更多标准 642
( b. @  I: m- \" y6 ?18.5 小结 6427 F2 a# J8 t" R5 O9 h* u2 J

/ H9 C2 I# R- H6 W2 }& q7 c- W! ^7 V, c, b$ F# N3 V8 @% P

评分

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

查看全部评分

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:2 天
连续签到:1 天
发表于 2017-7-30 20:48:01 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:3 天
连续签到:2 天
发表于 2017-10-8 00:08:41 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-23 23:28 Powered by Discuz! X2.5 Theme by dreambred

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