QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

管理员

Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40

技术值
查看: 2160|回复: 2

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

[复制链接]
最佳答案
192 
累计签到:2290 天
连续签到:5 天
小甲鱼 发表于 2016-11-18 17:43:52 21602 | 显示全部楼层 |阅读模式

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

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
) p; O. G/ d1 C+ x
% U8 u5 [0 y7 e. E
书名:《Linux程序设计》
; y6 C/ P- Z# a: I- g' [作者:马修 (Neil Matthew),斯通斯 (Richard Stones)7 g, I& r' z( `7 C
译者:陈健,宋健建 7 U5 l* Q$ I- H2 f! n7 N
出版社:人民邮电出版社. n- g1 e6 E: z% C- P
出版年:2010年6月1日(第4版)
1 k" k; P; ]# [: z" o, B定价:99.00元. J( [1 V4 Q4 }7 h
装帧:平装
& [+ [3 [6 d. r- {! b' fISBN:9787115228215( ~7 f/ V/ {2 [/ p0 f% f, q% W& F
" u8 ~* b; B  C5 Z' v' @
购买链接:- V' h! l% K3 X/ z3 j2 S7 l

% @3 y6 P, c$ N* R' K6 g# q
3 E3 ^: {9 U' w/ v
亚马逊(Kindle)-> 传送门9 m' V6 j5 o* H! S

+ g8 I* |3 H6 ?) K亚马逊 -> 传送门- i; @. T$ k9 ?) Z

' j2 }' h" }. R5 l当当网 -> 传送门- R. R0 I& l# X5 L+ V( p
& Y5 p" x9 J4 Z6 p; \
京东 -> 传送门
% D3 I+ _( O( t6 p* a" {& m6 k; ]1 X' R7 j6 J( S9 ?
天猫 -> 传送门
) C) \1 m$ g/ \8 Z  v2 t! w+ e
  w. p, n9 w, J- n! {4 V9 c5 I% J/ y( M$ F6 S& D& G6 d: B
内容简介:9 }. J4 y! C# G
/ f3 k) b" z. {; @+ N7 \

0 g5 Z9 J5 Y1 v
《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。7 X: k# S6 O! {+ N& s( ^
0 m6 X# Z$ J2 G) r( N
《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。2 Q5 ^  f! _. c, F8 Q3 T" G  u5 D
, x! {, z( r9 m( n% F6 n

7 }; C. G; W% o" B目录:" @4 l, D6 r/ W" T

7 f( F8 Q4 p% p, d: N
$ U, G' w' o) l( ^. ~* K
第1章 入门 11 L3 Q1 Q; T' Z- y  P: q8 A, \
& g. W# _# M) f7 p7 f% b" R% F" a
1.1 UNIX、Linux和GNU简介 1
% `2 _- o% c. G3 \1.1.1 什么是UNIX 1" r/ ^0 ]2 ?" d0 `* b9 }8 {# @
1.1.2 什么是Linux 2
6 R! N$ r# O* H& K0 }1 M" i+ h$ x1.1.3 GNU项目和自由软件基金会 3
- j0 u) d6 Y6 s  S: O8 d1.1.4 Linux发行版 3+ K4 q* A7 Q, z4 E; R* |7 y, v
1.2 Linux程序设计 4
& o. n7 S0 y7 m) p: `$ p2 L1.2.1 Linux程序 4
3 a7 |% O2 f5 b- C1 f1.2.2 文本编辑器 5* ]8 o. m; M$ r6 U8 ~
1.2.3 C语言编译器 5
+ C5 k3 s, F& P/ n' `- E1.2.4 开发系统导引 7
; w7 C- v: C) m. M1.3 获得帮助 12/ ~3 l" s" ]  K9 r: N
1.4 小结 14
- x9 R; A# c# I6 l* i9 @ / i' S/ m6 k% [5 h2 B6 \, I
第2章 shell程序设计 15" n: g, a2 e9 f: a, @6 t8 L
8 `/ r3 J7 d. C( l: T" Y
2.1 为什么使用shell编程 15
) {, s1 p+ q3 v. J/ L1 {" `2.2 一点哲学 16$ J% _9 x  K0 D% n0 p( Q9 I
2.3 什么是shell 16* m' f; K3 \; w! }
2.4 管道和重定向 180 P1 [$ b! [: a, a7 n3 j+ _9 r6 X
2.4.1 重定向输出 180 H6 a1 {& {0 y. S1 E
2.4.2 重定向输入 19
  `( t! J1 F! L; i0 K2.4.3 管道 19
) X6 D* w0 g4 V+ K8 @  T8 f3 J9 L2.5 作为程序设计语言的shell 20
. f  M' G/ D& J- X2.5.1 交互式程序 207 E# z  m  w& U1 o3 F! E/ n
2.5.2 创建脚本 21% r. p* f: \  b8 l/ E$ E9 ~
2.5.3 把脚本设置为可执行 22
. r0 l( L, I8 E- N2.6 shell的语法 23
4 B) z$ `; ]+ \. V* P, e2.6.1 变量 236 `# i+ R; q% W: g" M7 T
2.6.2 条件 27
3 i# k9 y9 v+ t2.6.3 控制结构 29
  l5 K" \3 L3 a* U! A2.6.4 函数 39: B9 S' V& n( N5 a$ n- J
2.6.5 命令 423 A0 Y2 E4 U! o% u8 |
2.6.6 命令的执行 58
  h/ }5 L! R9 X/ Q# X% I2.6.7 here文档 61% w) ^+ i* f5 ]
2.6.8 调试脚本程序 633 J* X: z+ Z2 R% R0 s2 E
2.7 迈向图形化:dialog工具 63, L# z+ P7 p( b6 ^6 E4 V
2.8 综合应用 68& H5 Z  f  l) D
2.8.1 需求 68$ @( B6 m- e- e
2.8.2 设计 68
& }- t( d2 j( Z5 T% J) q( c2.8.3 应用程序的说明 764 S+ Z7 J# e# V  @4 P
2.9 小结 778 h6 B4 P/ Q9 ]3 X

( e) G, P. Y$ V6 q. a9 q第3章 文件操作 783 R5 E6 P0 A& y2 W* i7 q$ b0 h
6 K4 {! Q) S6 `# \
3.1 Linux文件结构 78# Q7 Z( j, h. Q- `
3.1.1 目录 79
3 e* i# ^0 |( [3 o8 i+ ~3.1.2 文件和设备 79( i' o& {9 f" A+ b( [- M
3.2 系统调用和设备驱动程序 80  i; A1 [/ E! Z7 t; O" e
3.3 库函数 81! g9 q- S3 L( t
3.4 底层文件访问 82* t5 Q# h9 T  f1 f3 m( J  P4 j5 F
3.4.1 write系统调用 82
) V% y8 z. l0 x3.4.2 read系统调用 83
. ?. [/ w: A" {* a1 l3.4.3 open系统调用 84
. E1 y/ d7 }" N3.4.4 访问权限的初始值 851 Y3 Y3 G3 n" e0 _/ j
3.4.5 其他与文件管理有关的系统调用 88
! Y. Q9 P4 m) S; q0 q6 [- Q3.5 标准I/O库 91& [( W5 F6 n9 o: i
3.5.1 fopen函数 918 ^6 i: w. Z6 O5 t# ?
3.5.2 fread函数 92
8 Z2 L7 v. h: a$ H3.5.3 fwrite函数 927 H( V6 D) f/ X0 b" y4 H( D* Y
3.5.4 fclose函数 92
, {. o# t% \0 q3.5.5 fflush函数 937 X5 d* r; q( Z: S1 n3 ]
3.5.6 fseek函数 936 E8 w, Z  h( m9 @/ W# H6 U) k2 S
3.5.7 fgetc、getc和getchar函数 93
9 n1 K  N) F. ^+ A% }3.5.8 fputc、putc和putchar函数 94
/ E8 v/ }; c% E) e; O1 L5 v1 e  T3.5.9 fgets和gets函数 94( N( w- D0 C4 u  q: g- b# }3 J- U
3.6 格式化输入和输出 94
/ g0 ^& R* r6 {# Z% H5 T4 W* \) p: Y3.6.1 printf、fprintf和sprintf函数 94
% t+ H, ]$ ?1 v1 L4 H/ e3.6.2 scanf、fscanf和sscanf函数 96& U" E1 I% B) \1 a! t
3.6.3 其他流函数 98! G- R1 H4 G4 _! z  s: ]$ I3 k: A- \
3.6.4 文件流错误 99+ ?  n  b# Q9 a, u9 ^! [
3.6.5 文件流和文件描述符 99
- z  _9 v# D7 F6 p7 S3.7 文件和目录的维护 100- m' A1 n, }7 M1 a1 k% H
3.7.1 chmod系统调用 100* _: Y0 y6 E" B2 }: }6 m% y4 O
3.7.2 chown系统调用 1002 Q2 n# Y. }' \/ c; i" E" m, A; G
3.7.3 unlink、link和symlink系统调用 100
0 B1 ?# M. D+ v9 I' u3.7.4 mkdir和rmdir系统调用 101. |9 Q& Q* S+ d, Q! A2 q
3.7.5 chdir系统调用和getcwd函数 1018 w* z. U+ k  {# ]" c
3.8 扫描目录 102
) E/ c( P7 i) A0 ^  o$ ^3.8.1 opendir函数 102
" t4 k% ?8 {7 t' Q3 c8 ]3.8.2 readdir函数 102% U$ n0 g/ M7 {1 y9 f' h
3.8.3 telldir函数 103. t2 j9 K9 R9 D5 V
3.8.4 seekdir函数 103
6 ~0 Y/ Q$ W0 l7 l& b3.8.5 closedir函数 103
+ R9 w) H% Y3 @$ }" t7 L) X( O, H3.9 错误处理 106
: K! d: c7 b$ n0 o% D4 N+ i3.9.1 strerror函数 106
- F. [: k) [4 D6 ~. U3.9.2 perror函数 1068 L* `& j3 q  M/ o1 N" Q" c
3.10 /proc文件系统 107  f+ \( H9 z; i# Z& ], o
3.11 高级主题:fcntl和mmap 110
- K! h- Z7 T6 v, I! Z/ w3.11.1 fcntl系统调用 110
+ @3 C! e: S+ m6 h  \: q# n3 b3.11.2 mmap函数 111  O( L5 V+ Y/ m2 g) O- I# c
3.12 小结 113
. H0 D( }+ k0 M  w  G/ I4 D
; o# W! i" D& X5 d第4章 Linux环境 114
1 P5 M0 q! R/ l
5 H* b. f  g' @5 m: V; x4.1 程序参数 1144 ~' R) A' ^! ~& L2 A& J
4.1.1 getopt 116
7 @! z  b3 I  t& F4.1.2 getopt_long 118- v4 m8 }- B$ @
4.2 环境变量 120' V& i3 w# }, ~1 M. d# ?# {$ C
4.2.1 环境变量的用途 122
& Q6 I3 i+ ^: i/ \. \5 @6 ?4.2.2 environ变量 122
7 Z" p; l. r2 f4 q8 H* K0 _$ ?4.3 时间和日期 1232 q/ L" ~" x- g7 a
4.4 临时文件 129
, a0 N1 `4 a( [3 f% W1 ?4.5 用户信息 1311 E1 o5 d' A/ f
4.6 主机信息 134
( d# }6 ?8 F: Z; T4.7 日志 135) r+ U/ d' S3 |
4.8 资源和限制 139
6 F7 y. V* `! i2 ]  y$ D8 u4.9 小结 143- R+ j# c3 S  T
8 ^% T% _" Z. `, G
第5章 终端 144
3 ]( E4 |# }1 n$ [" ~' Z2 ^6 C0 |$ f! O
5.1 对终端进行读写 144
; c; K6 @' ~; t7 ?! \% [5.2 与终端进行对话 149* q* G" [1 G7 p; J; ?! `
5.3 终端驱动程序和通用终端接口 151; D& D8 r( L5 Y. ]
5.3.1 概述 151& o$ Q  L# W) V' X/ s
5.3.2 硬件模型 151) H/ v2 k- }# \# j) H
5.4 termios结构 152% V$ W6 D' a. T4 D( z
5.4.1 输入模式 153
/ I2 d; d# u  c. W1 q& J5.4.2 输出模式 154
+ L1 N% z3 f- p: A7 E. L' [5.4.3 控制模式 155
& Q! U0 z" V7 k# I) x0 R$ ?2 \1 Y5.4.4 本地模式 155
8 }, g( J8 S9 C" D5.4.5 特殊控制字符 155
( V; a2 O1 d3 {3 R1 Y* n1 X5.4.6 终端速度 158/ e# x4 `! _6 G: \( @1 r
5.4.7 其他函数 159
7 ~$ u4 U& L3 \3 p  B; k" J2 Q& n+ O5.5 终端的输出 162
5 Z4 U1 ~' A2 Y5 @5.5.1 终端的类型 163
, g& X( [2 i# Z0 g5.5.2 识别终端类型 163# V& P: ?( g! Z; S5 Y* R) ^; g
5.5.3 使用terminfo功能标志 165
3 n0 t+ W- ], o7 q! @) h5.6 检测击键动作 170& m  s! m* f& `3 o; J. i- m
5.7 虚拟控制台 172$ r! r% e3 ^  @, P$ J8 g
5.8 伪终端 173' S' C- z# @" b0 }" l* A. E
5.9 小结 1744 R/ w; _- r$ X+ X

+ ?# {; c" J* l8 X第6章 使用curses函数库管理基于文本的屏幕 175
. K& c: ]3 g! b4 ~% Y: o8 G
. q/ Q, K& F" r5 G2 j% |( h6.1 用curses函数库进行编译 175
0 J) Q: w' u% _3 Q6.2 curses术语和概念 176
$ H- j" M4 c. ?6.3 屏幕 178* Q  t$ E! W2 M: P
6.3.1 输出到屏幕 1793 Y" A( P' f( ?) v
6.3.2 从屏幕读取 180
8 Q: R% O, x/ m6 u6 w/ |6.3.3 清除屏幕 1806 U' z! x' }0 e2 S* ~% l) T8 \. R# T
6.3.4 移动光标 180
3 A9 U* A9 u. _, D6.3.5 字符属性 181
7 Q, N$ I3 S7 C+ k6.4 键盘 183  {0 m$ B1 g5 J3 d
6.4.1 键盘模式 183
- `4 J. P, b# J6.4.2 键盘输入 1845 w" i* e7 ~9 |. `% h
6.5 窗口 1858 p, D+ n. ?, c
6.5.1 WINDOW结构 1852 ~# M% i) M& }+ P  K/ `* a
6.5.2 通用函数 186
  i9 E% a& p% j( `3 s6.5.3 移动和更新窗口 187( [" E: H( o5 M. E5 V! d; M# _. x
6.5.4 优化屏幕刷新 1906 c; H% t3 w6 ]$ u0 T
6.6 子窗口 191
+ ?, U2 ^( T+ ^# Q6.7 keypad模式 193" w- d' I5 [. |1 A8 h
6.8 彩色显示 195
' j+ Q! g$ i0 I6 G! H0 {6.9 pad 198
/ F8 u+ s  [, v, ]6.10 CD唱片应用程序 200
. {1 [! {# ~+ M) f' [, J7 Q( P  j6.10.1 新CD唱片应用程序的开始部分 200" I+ t! F" f: c5 r. R  S- b
6.10.2 main函数 202
# g5 o& n' {5 s' J6.10.3 建立菜单 2038 X/ b. t) @7 u7 t3 x
6.10.4 操作数据库文件 204) f& J( m( S* s! M
6.10.5 查询CD数据库 209
9 \9 W( |; i5 W4 p: w6.11 小结 213+ L0 g8 c( g& b& H5 _3 `

: \& p$ ~) @( F# }第7章 数据管理 214
4 D# z4 e& X3 j$ @8 }$ C" ]8 k2 x' v7 Z, o3 i1 o9 Q+ U
7.1 内存管理 214) G0 G0 L2 w- f' H; _; W
7.1.1 简单的内存分配 214
8 o& e/ o- g  {% N! ^/ h7.1.2 分配大量的内存 215  x; [" g9 I/ V- R
7.1.3 滥用内存 218
! [9 `; C% q) x# P9 b2 Y7.1.4 空指针 219; m+ c5 N+ r( @8 D) d6 |2 B
7.1.5 释放内存 2207 ?: f* {, i) M  k# {- m2 h8 A
7.1.6 其他内存分配函数 221
6 p# K; l+ r) @  n# S7.2 文件锁定 222) Y! J1 ?* S/ n( }7 v
7.2.1 创建锁文件 222
) i) Z: u) {. U# ^8 c6 b- l7.2.2 区域锁定 225$ {7 Z& Y% p+ i: E# P$ g
7.2.3 锁定状态下的读写操作 227
* }* }. _0 d: I9 z! j' _/ I/ J7.2.4 文件锁的竞争 2322 M0 ?9 Z* c/ a* J7 R
7.2.5 其他锁命令 2365 B& Q7 ~: g# U5 W: o/ B# G
7.2.6 死锁 236
/ ]* F' k1 j8 ^0 n+ |3 j) Q* \7.3 数据库 237% d7 j# I# N' \" p
7.3.1 dbm数据库 237  g9 C# {- O  J# W- h
7.3.2 dbm例程 238% v3 _0 K. b: S
7.3.3 dbm访问函数 239% I( L/ p5 Q( M' b
7.3.4 其他dbm函数 2420 e3 A  G5 b) t1 G
7.4 CD唱片应用程序 244
2 J& r: N# c' N: I9 I, N* _7.4.1 更新设计 244# e6 m# f6 Y# ?% Y" l4 K1 l5 V* C
7.4.2 使用dbm数据库的CD唱片应用程序 2457 F* }( e2 D5 o' L. P1 z
7.5 小结 262
1 {' y4 D3 i. t2 j9 _
4 W' Z9 D! P# S第8章 MySQL 2638 M$ H  V- x% A; ?  {3 d* u- [

3 J) y- d- \  z  h- {, S8.1 安装 263
# t+ r! X5 e7 t8 X8.1.1 MySQL软件包 2640 {7 ]0 Y2 m" n7 P) y8 j0 s2 v
8.1.2 安装后的配置 266
+ F+ s, C1 N* G+ `' H7 w" @8.1.3 安装后的故障修复 270
9 Q* i9 U- i2 I2 `/ {0 L8.2 MySQL管理 270
7 t; `% b  L# P9 X0 f4 T: k6 Q0 w8.2.1 命令 2709 E4 L8 H! f' K
8.2.2 创建用户并赋予权限 274" N( X0 i& Y- ?8 g( \! Z2 h
8.2.3 密码 2760 J$ f& D5 s/ R! u- @* h* _5 Q
8.2.4 创建数据库 276& d0 c, K5 v7 B! i" s5 Z
8.2.5 数据类型 277
) T+ N: ?2 E- {% D8.2.6 创建表 278
. W. Z# P+ o! d# S3 g! S: o8.2.7 图形化工具 280, q3 D  s8 V. \5 u- V
8.3 使用C语言访问MySQL数据 2834 k! @" l, m' w% |8 r* w# ]; X
8.3.1 连接例程 283, j) w$ j( f+ x# F' \; b
8.3.2 错误处理 287' c- d' n& L0 v7 H1 B
8.3.3 执行SQL语句 288" T) |" \. _0 t
8.3.4 更多的函数 3013 X2 s3 e, y7 [: m' Z  q
8.4 CD数据库应用程序 301
: c" e) J% @0 b( G' v2 U8.4.1 创建表 302
, z( D9 G2 w! f  P8.4.2 添加数据 304. J1 n# _6 f8 _* F3 Y
8.4.3 使用C语言访问数据 306
% h  ?6 _$ w' ~8 b# ~8.5 小结 3165 O9 D% x6 G* H

9 ?* n; u1 p, |' t: e第9章 开发工具 3175 W# i. \2 T+ P3 E1 J/ [7 V

# N$ p/ x: e' K+ H: Y9.1 多个源文件带来的问题 317
% G9 o7 a9 ?+ n; d, `  o. i9.2 make命令和makefile文件 318
; }  B$ v& H7 V/ q* `" G9.2.1 makefile的语法 318
. [( ~" E" |9 y4 w* W$ x; K, |9.2.2 make命令的选项和参数 318) L) Q; M$ O6 J
9.2.3 makefile文件中的注释 321& P& F" |( \. {* Z9 C% w! _7 p
9.2.4 makefile文件中的宏 321
! N/ r9 }$ G! ^# t9.2.5 多个目标 323
1 [/ e* l3 T+ }2 t  W( a2 ^8 a9.2.6 内置规则 325
2 y  k- H7 r6 p3 I9 ~1 \9.2.7 后缀和模式规则 326; X3 c  d/ i5 l
9.2.8 用make管理函数库 327
% h: v% I  [0 g3 p4 A6 ?9.2.9 高级主题:makefile文件和子目录 329
9 i3 h! G0 ^7 O% S& l9.2.10 GNU make和gcc 329: i# Y. R+ ]7 `% D; K3 @# j
9.3 源代码控制 330! {/ ?& E, q( R9 U, ~: x
9.3.1 RCS 3319 Z, R/ N6 b, {0 @+ g) u' Q0 v
9.3.2 SCCS 336
! ?: V$ U( [2 p9.3.3 RCS和SCCS的比较 336& M7 i$ Q/ x5 J" ^9 W! ~' j5 i, ~
9.3.4 CVS 337
# M2 E9 h' r/ Z6 r7 U9.3.5 CVS的前端程序 340. m4 m& y. o% K: B& b
9.3.6 Subversion 341
7 J1 y& G7 V  C2 f! L! f! ]% r9.4 编写手册页 342
) C1 q$ v$ \1 `1 F& Q# L2 L9.5 发行软件 345
/ S! v& f- L' r0 ~* K) `9.5.1 patch程序 345
# G" W  s" F+ O2 c0 H6 P3 ?/ T1 X9.5.2 其他软件发行工具 347
+ W5 p6 {+ }' f+ d9.6 RPM软件包 349
* E# v1 d, |2 K( l- M3 F9.6.1 使用RPM软件包文件 349; t" D- K' ^7 r5 Y( \4 a
9.6.2 安装RPM软件包 350( _3 q3 m, Z0 l2 o6 j' |; J6 k
9.6.3 创建RPM软件包 350+ X5 Y# |- H* E
9.7 其他软件包格式 358" e. K; u& B4 X, J2 J6 E, G3 F3 i
9.8 开发环境 358
5 M/ S0 i. j4 i1 J9 i: t$ X" Q" t9.8.1 KDevelop 358
. e6 s+ I* \6 `. D, a: C9.8.2 其他开发环境 3601 ]) t0 m$ e! t0 R' U
9.9 小结 3604 E7 P* n( Z1 ^
, G! n/ y! M$ a2 r) `
第10章 调试 3612 w. M9 N4 v+ r" M- U
5 \* p) q: [6 R) z  R* V" R
10.1 错误类型 361
2 ?" q1 S, k4 O, `, a10.2 常用调试技巧 362
6 ]: J% @8 G) V5 d9 Y7 V10.2.1 有漏洞的程序 362
1 A& ^3 k7 i+ d6 W' D10.2.2 代码检查 364) e& D0 O% J, _' ~; |
10.2.3 取样法 3656 @2 G1 Y4 I. r/ y1 |* f. I' M- w
10.2.4 程序的受控执行 367
: ~# r. d8 R3 \, r  d10.3 使用gdb进行调试 3682 v5 }' W. L  L/ o0 S
10.3.1 启动gdb 368
7 Q9 Q4 c8 h4 Q' X& Q9 `10.3.2 运行一个程序 369  S& Y1 r( G4 z  X  x( y
10.3.3 栈跟踪 369
* ]. y" m% n# B2 E, h/ x10.3.4 检查变量 370
7 G. A; y6 M) |0 n+ t3 a9 X6 S4 {10.3.5 列出程序源代码 370( u! v- b4 M- U
10.3.6 设置断点 371
# O" y5 d8 d6 ?2 b' r/ n10.3.7 用调试器打补丁 3743 m/ }( `& f3 d1 V7 t
10.3.8 深入学习gdb 375
0 [5 t$ c* V* s+ h10.4 其他调试工具 375
1 M6 N# X- L4 R  I+ s10.4.1 lint:清理程序中的“垃圾” 3769 @3 ?2 e! [8 m# Z# `
10.4.2 函数调用工具 378
/ y0 J6 ^, V! T! p2 d0 g' v10.4.3 用prof/gprof产生执行存档 380
9 R- E5 @9 |6 g9 Q* n10.5 断言 381
$ R9 n' v, z, v7 S10.6 内存调试 3833 a( \+ n! T. V
10.6.1 ElectricFence函数库 383
7 I3 z! N8 ~' u2 h2 `1 E# v0 y10.6.2 valgrind 3848 g+ r6 q5 s4 \  n* o% g5 h
10.7 小结 387
! K" p5 Y2 G  U4 O
& g: U8 q2 L# ~. F9 j' S) N# K/ k第11章 进程和信号 388; i! k* e- m! J8 c' u
$ u; v" J$ e, w9 N5 C0 Q
11.1 什么是进程 388; |+ _- T3 P! i/ V! w- E
11.2 进程的结构 388
3 s8 b7 ]! A( E11.2.1 进程表 390
, ]; O, N$ C# q/ @( X. x' H' k11.2.2 查看进程 3909 B+ [8 g' x/ L- t% ~. C
11.2.3 系统进程 3916 T* k7 P, f/ q( g/ o! D( ~! b
11.2.4 进程调度 393
% C$ C3 z: U& }5 d11.3 启动新进程 394$ r+ l5 k7 A( k& G7 P
11.3.1 等待一个进程 399
" I: k) f/ X/ e- H( J11.3.2 僵尸进程 401) E' J/ P$ X1 X% V
11.3.3 输入和输出重定向 403& w3 C5 _- d5 V2 D. Q
11.3.4 线程 404
7 ]7 @  X- B  b# }- I4 r11.4 信号 404
! r( [' m' \$ Z; e11.4.1 发送信号 408
, v7 x; p! r/ y, [- d" V11.4.2 信号集 412
- r9 R' c1 v% H1 L11.5 小结 415" v# X) E0 @+ R/ ^- _: w0 f& L  n

: ~  R$ P6 }. |( [- g" {# G  O第12章 POSIX线程 416. c/ ^; D+ K1 @+ l3 e; }; @
4 Q5 @2 ?- c/ Z; z5 m
12.1 什么是线程 416
% w' _1 A3 v' s; ]3 t. x! m12.2 线程的优点和缺点 417
  L: Q4 z- A8 e. K  B12.3 第一个线程程序 418
, p! |: N- k1 V" }5 j+ k3 }12.4 同时执行 421
5 s) I7 p) V/ b4 S+ P8 [12.5 同步 4231 J) G% Y+ W/ c1 T
12.5.1 用信号量进行同步 423
# ]4 @* j4 A. v$ q& Q6 w* M12.5.2 用互斥量进行同步 427
  f) K! Y# Q$ a0 l0 x, N12.6 线程的属性 431
+ D, J5 r: N8 H% O12.7 取消一个线程 435
& _7 n. P/ f+ Q7 J! O: t. j12.8 多线程 438
6 O  _: q8 G2 k1 f- X+ F12.9 小结 4422 l) H4 u% \! U# q

7 V( t8 C. I- j+ H0 Z7 g第13章 进程间通信:管道 4437 H  N, _" x( H+ _6 i0 e
9 p, ~0 t! P3 Q* X' J5 |5 T/ V4 X) P
13.1 什么是管道 443
* @' U8 t2 @& c13.2 进程管道 444
6 ~% U6 e3 M4 v* {4 c6 `) h13.3 将输出送往popen 445$ u3 r% s1 S% n, ]) l' q
13.3.1 传递更多的数据 446: j6 T4 [; v* k6 K& C
13.3.2 如何实现popen 447
) V1 z, a0 [: q, c# ?* Q13.4 pipe调用 4498 U* d: C( R1 b; g0 r6 G; H, N
13.5 父进程和子进程 4516 ]" y( Z" v+ D2 B
13.5.1 管道关闭后的读操作 453  A5 ^3 G. L! q( m
13.5.2 把管道用作标准输入和标准输出 454
4 Q- a2 U. U4 {# k- E" [13.6 命名管道:FIFO 4565 [3 h6 M8 J4 \1 r/ q
13.6.1 访问FIFO文件 458% r" m! Y' I# o" W' F& y9 _; B! L
13.6.2 高级主题:使用FIFO的客户/服务器应用程序 4643 ^8 Z! {4 q# ~  Q
13.7 CD数据库应用程序 468) [! e3 H0 E' I% C! o& }; v. f$ ~
13.7.1 目标 469
: E) t- F/ F" C8 }& P5 C5 y- |' c13.7.2 实现 469
0 ]9 C) D) N& g- h13.7.3 客户接口函数 472
* c& w* i* m- V2 G3 q5 V, Y13.7.4 服务器接口server.c 478
3 |: ]6 U! ]( q9 }4 }' u/ V13.7.5 管道 481
8 `9 r: I2 z6 o1 V4 a( D13.7.6 对CD数据库应用程序的总结 487
+ L1 [/ t+ ?2 l3 i/ m+ H13.8 小结 487  P- g$ b9 L  E& _( a8 s) m. x
2 R# x6 a: h# z& F5 s6 a/ a5 v
第14章 信号量、共享内存和消息队列 488  D8 C8 y* C4 P. B3 n) S. P  b

, v; D5 w- G& c% N. Z! _0 V4 ~14.1 信号量 488
) V, e# t  Y! P) c, d3 \14.1.1 信号量的定义 489# E4 D4 M! U4 ~, W8 _
14.1.2 一个理论性的例子 489
& ?' d" m: G. N14.1.3 Linux的信号量机制 4904 O" O: f6 z! |  A
14.1.4 使用信号量 4929 E* ^6 m7 l( ^9 v/ A
14.2 共享内存 4962 i5 k1 s: C# X2 m
14.2.1 shmget函数 497; a  Q/ C+ m7 v* Q6 B( q5 ~
14.2.2 shmat函数 497' ?, S+ x; C4 Q2 j% a# u+ f1 T# L8 f1 P$ e
14.2.3 shmdt 498
. c" g. g$ l( G9 s  D6 e14.2.4 shmctl 498
3 h0 T* X& x& I5 |2 }14.3 消息队列 5020 w3 }- C5 g( ]" p! N7 |* ]) g) ^
14.3.1 msgget函数 502
& G. [6 E( T- R' ]" }4 |8 |5 k14.3.2 msgsnd函数 503
2 _& s8 V  ~. m2 s14.3.3 msgrcv函数 503# z* ~, {, L, @/ @8 T$ y% A( `% e$ A# N
14.3.4 msgctl函数 504% ]+ {0 j' Q2 t$ R
14.4 CD数据库应用程序 507
  m/ w- ~& Y' u/ z14.4.1 修改服务器函数 5070 S& ~  `2 R" o9 a1 V1 c1 U' r
14.4.2 修改客户函数 509
: O4 D' q. n# p$ S14.5 IPC状态命令 511" j, l8 b* Y; u7 p) P" t
14.5.1 显示信号量状态 511. Y. a0 x8 |* o! f9 K
14.5.2 显示共享内存状态 511
% S; Y  i; I! K5 i9 d! a, g" x5 p14.5.3 显示消息队列状态 511
; v1 J# ~8 d5 n+ ]' v/ U+ _! W" b14.6 小结 512
8 z% k  c% i/ X. h' r* Q  K# h$ l. m( u
第15章 套接字 5132 H. u! Y# Q6 ^) h8 F, u) j8 ^
2 h5 P0 B0 b( E: y
15.1 什么是套接字 513  K: s3 S/ U/ g5 `% p6 A4 N& P. P
15.2 套接字连接 5130 _/ x! }9 V9 K7 d' Z5 E0 P
15.2.1 套接字属性 517! x# u: A! B/ A: `; t( `
15.2.2 创建套接字 519
: @  n3 o; k' P15.2.3 套接字地址 520
4 E1 u! b8 X* [& L' ^15.2.4 命名套接字 520$ P0 @8 ?# m* H6 _7 Z$ s
15.2.5 创建套接字队列 521
8 u: E! [  @) _/ o6 Z7 a15.2.6 接受连接 521
" u, _! R  U- i2 ^# }15.2.7 请求连接 522
8 S6 R( D4 ?* r& N( T15.2.8 关闭套接字 523
" j  f1 D1 Z! y5 D: I$ |& i15.2.9 套接字通信 523
- C# p; F% b& R15.2.10 主机字节序和网络字节序 525
1 S& Y3 y7 L) o1 R- p15.3 网络信息 527
. A8 X9 o1 N, u) _15.3.1 因特网守护进程(xinetd/inetd) 5310 l/ W+ ?& z6 n$ Z* u1 e+ A
15.3.2 套接字选项 533! C; P; F# U9 S6 q+ W
15.4 多客户 534
/ f) z" f5 R# x6 E3 ^15.4.1 select系统调用 5371 A- ?) w( X. G
15.4.2 多客户 540" o0 E$ F! ^2 A  J; Y
15.5 数据报 5437 P, ^0 x# v: r& e; K1 A
15.6 小结 545
: C) `# r# Q! F. }' N, ^
3 U  b1 f6 _4 _! P0 |第16章 用GTK+进行GNOME编程 546. }4 t( w& I9 ^/ ?

2 l4 U8 E9 `" v16.1 X视窗系统简介 546
4 h* S' j) N5 A( I" V( X, [16.1.1 X服务器 547- p3 R: ~" b$ u
16.1.2 X客户端 547
; B1 k- Z9 ]1 I16.1.3 X协议 547' m" o/ }: q/ i) g3 W) o( H3 s0 X
16.1.4 Xlib库 547
8 G$ Y8 b/ I! `1 J1 }$ D16.1.5 X工具包 547
+ t5 N& h& w6 N  V7 J' T16.1.6 窗口管理器 548
- q8 g' g3 P; {" A2 O16.1.7 创建GUI的其他方法——平台无关的窗囗API 548
+ C' {8 b- x4 ]( Z! J6 m16.2 GTK+简介 549+ w. y4 W+ L5 u
16.2.1 GLib类型系统 549
3 c, P# @2 B& e16.2.2 GTK+对象系统 550
0 H' y! l- A! T2 Y6 \  r% D16.2.3 GNOME简介 550
& H/ o# u* E9 ?; q$ k' `# ]+ I16.2.4 安装GNOME/GTK+开发库 551
8 W$ z, H4 h% k9 D) r: w5 y4 E$ h16.3 事件、信号和回调函数 554
% v) |* x  N5 p6 d0 U* e16.4 组装盒构件 556- K  I$ x: D5 g5 t) a2 y7 _$ W+ ^
16.5 GTK+构件 559$ @4 Q" i" ]( {" o3 U' @3 K
16.5.1 GtkWindow 559
; \6 a  m9 l8 V5 D1 c% n16.5.2 GtkEntry 560# j3 z& J' g. l& S3 [0 H" T
16.5.3 GtkSpinButton 5630 x8 w6 d) ?5 V6 T% i
16.5.4 GtkButton 565
- c2 s& f" G$ o3 o" w4 N% d+ o16.5.5 GtkTreeView 5689 h1 l, \& q3 o% d
16.6 GNOME构件 571# `+ b; Q0 u' F. n8 K
16.7 GNOME菜单 572
8 ?. X$ ~( ], u& _8 c! f16.8 对话框 576
- U. `: y2 N+ g' C+ }. ?2 ^0 h16.8.1 GtkDialog 577  P. _; Y0 y$ r* P2 c
16.8.2 模式对话框 5785 ~# B4 A5 H7 ^4 u
16.8.3 非模式对话框 579
1 d/ G. Q4 ?5 G16.8.4 GtkMessageDialog 5809 S0 d/ J5 P& f0 u- I: V& ~
16.9 CD数据库应用程序 5816 j% {, x* P3 n$ N
16.10 小结 5921 S. ~- |. Z& [* G; C" Y0 W( _

% ]" p7 \0 C) ]- a第17章 用Qt进行KDE编程 593, H- _* G# P" D: h) F

+ y% `, J6 r: Z" ]& R17.1 KDE和Qt简介 593  M! C) k( y9 L3 d' M2 q4 K3 }: x
17.2 安装Qt 594
; Q! K1 ?: B! g0 b; K+ }5 K0 E( F. w17.3 信号和槽 596/ m; z0 t* t; n
17.4 Qt构件 602: O& L8 j. ?5 X+ U- h
17.4.1 QLineEdit 6029 P. M6 e6 q2 W% W2 C5 t4 c
17.4.2 Qt按钮 605* s& L8 Z5 w6 t+ p  X1 G, E
17.4.3 QComboBox 609, m8 R9 W( W3 I$ j6 ?
17.4.4 QListView 613. I8 r0 {7 h& z' M
17.5 对话框 615
3 U2 D* e- }" O7 Z- A17.5.1 QDialog 615
" }7 {# i9 @$ P$ E0 |17.5.2 QMessageBox 617
% X0 c+ U$ \" R0 ?$ ?/ y17.5.3 QInputDialog 618% A; ]9 r. r% _8 H* t2 j
17.5.4 使用qmake简化makefile文件的编写 620" P3 D; W8 ?1 E, q( a  d& W! Z
17.6 KDE的菜单和工具栏 620" S. b0 Z3 @" E" S$ l
17.7 使用KDE/Qt编写CD数据库应用程序 624
8 q6 Y% u! E2 X2 E; v- B$ F0 K17.7.1 主窗口 6244 R- h) Y. i$ B- R; |; |3 C
17.7.2 AddCdDialog 627
8 n( B' G& Q7 k: d9 r2 a17.7.3 LogonDialog 629
& L( S5 S4 _" l6 C17.7.4 main.cpp 630
( M+ h& g8 }- r+ j17.8 小结 632
4 \4 X. `0 A- u% T
0 B8 a6 K- i: k) t) a$ B* Z第18章 Linux标准 633
! P% r- f. X$ Z0 i5 J  D
4 b5 I$ ]. g# P1 p0 [18.1 C编程语言 634
0 \# D0 ?- P2 D  z18.1.1 发展历史简介 634* f6 O: S; |# T( r: U
18.1.2 GNU编译器集 6343 u" h$ j1 s; ~# e& e6 E5 l1 Q
18.1.3 gcc选项 635
- U7 o+ H1 V" z  y) P0 w, u18.2 接口和LSB 636- I: ?1 ~* k& w2 \5 B6 t8 W
18.2.1 LSB标准函数库 637
5 K1 ^6 s6 h9 A; T9 N18.2.2 LSB用户和组 638
' B/ O! N9 c$ [18.2.3 LSB系统初始化 638
5 z% S6 a7 e( C3 E1 Q18.3 文件系统层次结构标准 639
4 M# [5 Y  v  T0 f( @$ S3 w- A2 m18.4 更多标准 6423 `# }  b5 m& N# N3 ]* @
18.5 小结 642
' P+ Y. }* ?. C  r' v6 ]+ |1 {; d$ p
" ~$ @9 p' H$ W( f, N

评分

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

查看全部评分

楼层
跳转到指定楼层
最佳答案
0 
累计签到:2 天
连续签到:1 天
小爱一万 发表于 2017-7-30 20:48:01 | 显示全部楼层
这本书不错,讲解详细,值得一读
最佳答案
0 
累计签到:3 天
连续签到:2 天
cc_ 发表于 2017-10-8 00:08:41 | 显示全部楼层
这本书有没有电子版的呢//

发表回复

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

本版积分规则

关闭

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

    移动客户端下载(未启用)
    微信公众号

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

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-1-21 12:27

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