QQ登录

只需一步,快速开始

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

主题

帖子

荣誉

管理员

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

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

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

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

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

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

x
TB1SlhmMpXXXXX7XVXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg

/ ?( w: y" @6 _& \  x- I# \5 D. O/ v, T
书名:《Linux程序设计》
5 m6 H) G4 @) C作者:马修 (Neil Matthew),斯通斯 (Richard Stones)
. \* n* k& L1 I$ L, {5 k# M; ?. a译者:陈健,宋健建
/ P( V" S: G& s' y8 [, Y' n出版社:人民邮电出版社9 c' I5 \: d0 @* J2 Q. z/ _
出版年:2010年6月1日(第4版)
  I) Z( S( E: k5 X: R# p0 E" f定价:99.00元
# j/ |0 |9 [. G8 \装帧:平装" x+ J5 Z' D  z  a0 U
ISBN:9787115228215% _6 b- v8 k0 K9 ]9 D( Z* c& I, Q
# `( ?& L" g- a8 }  u; _$ o
购买链接:
* ]/ _( X- r/ s; [+ [3 a, g
9 W7 r# x' z$ U6 s+ G
6 g+ H# y6 H9 q( Z8 g( _6 z
亚马逊(Kindle)-> 传送门/ [1 g: b3 O& m  x9 v) d
; Z! o- k  V/ a' t( X
亚马逊 -> 传送门
# Z9 k( r$ B1 c& r& N  r/ P: v$ A9 o% i) [' E) u& r
当当网 -> 传送门' N; Q! J. c% q

* J$ M1 v3 A# v8 V京东 -> 传送门
0 j" P. ]' Y+ W, V: ~1 r5 x8 w/ G# c  G+ z% X4 M! K' [% X
天猫 -> 传送门, @; r& @9 i& Q( Q5 i
2 y' n* k' C; {- D7 ?
/ {4 }  U* \, t* r
内容简介:
! V" I& Y+ i# q: q; ]
9 w& ]0 ~* S% s# Z" a8 K* r

. D3 S( F1 M' ?( t4 _《Linux程序设计》讲述了 Linux 系统及其他 IJNIX 风格的操作系统上的程序开发,主要内容包括标准 Linux c 语言函数库和由不同的 Linux 或 UNIX 标准指定的各种工具的使用方法,大多数标准 Linux 开发工具的使用方法,通过 DBM 和 MySQL 数据库系统存储 Linux 中的数据,为 x 视窗系统建立图形化用户界面等。《Linux程序设计》通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关的知识。* C& {+ P. y& ?6 ?7 E# g- Y! M; t: n

3 B  C3 ^6 ]& o7 }8 V+ o3 H% _6 d《Linux程序设计》适合 Linux 的初学者及希望利用 Linux 进行开发的程序人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
) Z3 C, X* U3 Z% B0 j1 S$ U' I
9 o3 P9 X, ?: l* i; }) c$ {" m2 J4 d( [$ \, g
目录:
4 k1 X6 \" F3 `% V. t( D2 A
6 C  j- M# a& P: z
% ~2 H) f5 g; I4 T  o
第1章 入门 14 L& \. W9 p/ q" b
4 b! j& w2 ?7 }! G9 \$ ~9 g
1.1 UNIX、Linux和GNU简介 1! W$ ]' _, x0 k9 N
1.1.1 什么是UNIX 1: j( }2 F# u' I9 k
1.1.2 什么是Linux 2+ Z/ a( I* @% J3 W5 k4 k9 |# S
1.1.3 GNU项目和自由软件基金会 3
; D9 H9 O7 @3 p+ e, ]; w1.1.4 Linux发行版 3" z% V/ X) Q$ {2 [2 B4 i8 n  S
1.2 Linux程序设计 4
  p" [% A5 C$ u; [0 @( _1 M: h1.2.1 Linux程序 4
# o, K# z$ R: b4 S, Z+ N$ N4 |5 h1.2.2 文本编辑器 5' V6 O, ^" e5 J3 u! W# F* O  K9 z
1.2.3 C语言编译器 5- S4 }; W) g! |, G6 `9 _- d
1.2.4 开发系统导引 70 k3 Y& ^( g* H+ W
1.3 获得帮助 128 T6 _1 b$ }- T& o" j
1.4 小结 14# D5 O. m7 g: q4 y
1 ^9 J7 N, l0 [% p4 z  m
第2章 shell程序设计 15" k8 `2 s2 K; }+ o, N! K" Q; t7 O8 i5 E
) j2 k0 D- C7 D- i1 ^) z6 f
2.1 为什么使用shell编程 15
9 z; C6 @; r$ K2.2 一点哲学 16, }( J# D1 r$ I3 x9 `
2.3 什么是shell 16) _1 h( H" g: T
2.4 管道和重定向 18
! l5 u9 I- w$ N( p# q2.4.1 重定向输出 18* U9 `* L8 j, v- B  y
2.4.2 重定向输入 19- _. C' S( v1 j: E' F; n+ Z
2.4.3 管道 193 c! c% y' G8 R3 P
2.5 作为程序设计语言的shell 20' @- `6 f2 _( T3 O. F( E3 P2 w2 ^
2.5.1 交互式程序 20
, F+ E2 t4 g& Z  N2.5.2 创建脚本 21' t* w7 D5 _7 W% @+ C5 c2 `
2.5.3 把脚本设置为可执行 220 ]2 V/ R, D' p+ u. m; ^
2.6 shell的语法 23- O! d& i- Z2 i% D
2.6.1 变量 23! _# c5 o( ^8 R3 h$ G
2.6.2 条件 27' N) T9 _( F4 g/ O7 D
2.6.3 控制结构 29. ~+ n3 M1 K! B1 Z: }! d- }( g
2.6.4 函数 39
6 L9 r3 r$ i5 _+ \7 p2 f2.6.5 命令 42
' c4 d7 C2 C1 ~2.6.6 命令的执行 58
: `& [2 m5 c( q: d: E8 {1 {7 E& x2.6.7 here文档 61
% M- V& k: g/ l7 H, J  A% B9 G2.6.8 调试脚本程序 63
$ f/ c8 O# t0 `( m. ?0 y" R% L2.7 迈向图形化:dialog工具 635 P0 ]9 k% m3 m
2.8 综合应用 68( o, q, u7 t' C6 r2 g6 X4 ]
2.8.1 需求 68( _$ e4 T+ z3 W/ r" |
2.8.2 设计 68' u+ w) e  p- N  ~& }, X, S* Y
2.8.3 应用程序的说明 76
) v. q1 `) g( n% _  ?3 o2.9 小结 779 L' l+ S4 s' R
  E- C9 @1 P, L- G1 u; \3 d. H$ |
第3章 文件操作 78
0 i( V7 z2 B5 b, u9 Q0 V/ u
, |+ \4 S' C- F0 ]  O' v; w% ~% W. t( `3.1 Linux文件结构 786 I2 Y* X9 D' J; a2 ~8 t
3.1.1 目录 79
6 X; Z& O( }1 |- [7 N- h3.1.2 文件和设备 79
! i2 |' q& ?6 O: ]( C3 \3.2 系统调用和设备驱动程序 80
) n4 K( c) `9 |0 K/ E( D3.3 库函数 81+ ?8 k" N2 _$ J  g
3.4 底层文件访问 82# r- F% d' M' o
3.4.1 write系统调用 82  t/ f( V& H8 D( J& a
3.4.2 read系统调用 83' j8 R7 s- X) _& k
3.4.3 open系统调用 84
! A- r) F: _1 P3 t3.4.4 访问权限的初始值 85# X2 b) T" j: `- A! J; W$ L4 Y
3.4.5 其他与文件管理有关的系统调用 88
* o5 y  V! u6 R4 `% I3.5 标准I/O库 91
. q8 a" C9 P! e+ r3.5.1 fopen函数 917 v# O6 P5 b1 c& @7 a7 m1 a) i
3.5.2 fread函数 92+ U  O0 L2 g( l# M
3.5.3 fwrite函数 92  |9 g) S8 U, C
3.5.4 fclose函数 92: G2 o! a- K1 u7 s) u
3.5.5 fflush函数 93
1 S2 ~' F. g9 Y- A3.5.6 fseek函数 934 G! ^4 W- h% ^& S% o1 k. @
3.5.7 fgetc、getc和getchar函数 93
$ D+ z6 B9 r  a3.5.8 fputc、putc和putchar函数 94
8 D& Y: y# Z' p! ^$ i3.5.9 fgets和gets函数 94) V# j; n. K) f3 V0 A2 G! X
3.6 格式化输入和输出 94
: T2 J4 n, g) l3.6.1 printf、fprintf和sprintf函数 94/ O: n- _- Y2 \5 H
3.6.2 scanf、fscanf和sscanf函数 96. E+ H* o2 h9 B$ `5 O
3.6.3 其他流函数 982 O/ N8 u, g' C4 a3 X9 `* O
3.6.4 文件流错误 999 v4 a) p7 W2 C( ~, L# @; W1 \
3.6.5 文件流和文件描述符 996 K' F/ a: |2 A5 Z
3.7 文件和目录的维护 100
" l; h; Q+ w" T& G+ F. m3.7.1 chmod系统调用 100/ {& H  p1 y" `+ Z
3.7.2 chown系统调用 100
5 \, M& s% s4 w7 C9 H* ]3.7.3 unlink、link和symlink系统调用 100
* h- e# h4 z0 |4 J$ N3.7.4 mkdir和rmdir系统调用 101
* B: ]' }: R' k9 P3.7.5 chdir系统调用和getcwd函数 101
9 J( Q1 B1 ?, H6 g) r3.8 扫描目录 102
" I% v. o. M' G: b& \9 M3.8.1 opendir函数 102
% f, w! x- w' r. Q9 b3.8.2 readdir函数 1022 C* `- ]- b( g; {6 j) V+ b
3.8.3 telldir函数 103
2 c, V0 [2 E9 v3.8.4 seekdir函数 103
! f# _$ H$ B# K; _8 Z6 A2 _6 Q/ l3.8.5 closedir函数 103+ J  w5 G0 a5 v: T; U
3.9 错误处理 106; y8 K8 M- U, U' e
3.9.1 strerror函数 106
6 W/ l$ \, _, W4 B' [3.9.2 perror函数 106
8 X4 Q% a* g9 a2 N/ L: u! c- ^3.10 /proc文件系统 107( m" K+ F& F& S/ J  Q2 @
3.11 高级主题:fcntl和mmap 110$ l( Q* g3 @/ E* Y/ y0 L5 T8 j6 @
3.11.1 fcntl系统调用 110
3 D" x- n. @. y3 _3 X5 B3.11.2 mmap函数 111
+ k2 ]/ T* L9 C  M" u0 H3.12 小结 1138 _' v$ M- S% K9 w
5 g  y4 y, A- b" g  K
第4章 Linux环境 1140 K  \( g( `6 Q. v9 L

1 w" D- e1 \# ]+ G0 Q1 a+ `5 O4.1 程序参数 114
/ I+ {# K+ k; j4.1.1 getopt 116
' h# h/ t, H) b+ L/ @4.1.2 getopt_long 1187 |( S8 E8 n/ t" Q  x
4.2 环境变量 1202 I$ ]/ Z8 n1 w
4.2.1 环境变量的用途 122
! @$ c  J- M) `4.2.2 environ变量 122
, a1 v  k( o7 Y; U3 w+ x3 l4.3 时间和日期 123  w* W2 T# [; c  X8 O
4.4 临时文件 1298 N  X# Y0 o$ _) F- l5 d
4.5 用户信息 131
; {) a. t( x6 ~9 s0 G4.6 主机信息 134
! }- g6 i" i! i) ~4.7 日志 135
* I. T8 u1 S. g/ Y4.8 资源和限制 139
" R, B, {! R: Z. s4.9 小结 1436 x0 ?; v+ a: N' J* Z
( z1 c7 Y% g5 l; k* d
第5章 终端 144; I# ^* u# C1 p+ f9 R9 x2 m
% u4 D# Q1 e0 e
5.1 对终端进行读写 144- X$ F' |% L" ^' `
5.2 与终端进行对话 149
- s4 P8 V4 W) F9 |5.3 终端驱动程序和通用终端接口 151
" [5 O4 {5 y$ c/ G# y5.3.1 概述 151$ W" f7 `/ ]- D
5.3.2 硬件模型 151$ V9 V, n- H" T' N5 |3 U$ G
5.4 termios结构 152$ z/ S( |0 C. q4 l: _" d
5.4.1 输入模式 153
8 D- t# q2 Q, E% g5.4.2 输出模式 154# L" K# E* \2 z  ^
5.4.3 控制模式 155
5 i  S1 U# |9 z5.4.4 本地模式 155' v  P! I/ f- X/ ~4 t0 \
5.4.5 特殊控制字符 155
+ T$ j% Z& a* X# w- d  S" ~1 T2 q5.4.6 终端速度 158
9 e# c- F/ ~" z$ e; }5.4.7 其他函数 159% _8 R( w. M' _5 M# M
5.5 终端的输出 162
8 T3 K; w, w) y- k' |& G5.5.1 终端的类型 163
  X* w& q8 f9 N$ \; _5.5.2 识别终端类型 163# R; b7 `5 V- d# K- Y/ q0 f2 t3 k# W
5.5.3 使用terminfo功能标志 165& N7 T2 z$ o0 N% L4 o; V
5.6 检测击键动作 170, i, [7 [1 W8 ?- n3 C& T
5.7 虚拟控制台 172  P8 [5 z1 P) y- G! z: V
5.8 伪终端 173
$ V3 H; S& b1 u) X! v' C6 P5.9 小结 174
; k1 C0 A) N9 `; k0 s
" f4 a5 H2 m3 C  [% l5 Z% i6 P) f; T第6章 使用curses函数库管理基于文本的屏幕 1755 B1 d7 Z( r( e
' C5 j& N! c. e
6.1 用curses函数库进行编译 1757 q# ~1 J1 y1 X  ?( }" s6 m
6.2 curses术语和概念 1764 ~) F" S7 ^8 a) k# P8 D
6.3 屏幕 1788 \% r! g7 ~4 q
6.3.1 输出到屏幕 179: ~5 n; n' j) V) `8 X$ B: \
6.3.2 从屏幕读取 180
/ }2 I2 d2 |, S( E: S# i6.3.3 清除屏幕 180
: u6 q8 r& z3 b* R6.3.4 移动光标 180
2 Q, _5 \2 Y: W& t" F6.3.5 字符属性 181# V( Z" Z, X: t
6.4 键盘 183
5 t3 @( V' L0 }4 [, y# }/ e6.4.1 键盘模式 183% f9 [( M/ G" Q9 N
6.4.2 键盘输入 184
4 A3 B( x0 }% O1 T. Y7 [6.5 窗口 185
  H/ n  f4 @4 o- Q' c9 G, X6.5.1 WINDOW结构 1851 R5 q! O/ a7 k1 q' x* y
6.5.2 通用函数 186
" g$ R; j/ W* [+ M2 z6.5.3 移动和更新窗口 187; \1 Q8 D  z  B$ p& _" @
6.5.4 优化屏幕刷新 190
& H- g# s# d1 |6 c5 D6.6 子窗口 191" y# \# ^$ b& T
6.7 keypad模式 193; g* o% r% e( X8 c
6.8 彩色显示 195$ q, ]: }6 b, j2 k' ~4 d
6.9 pad 198
% L6 ~$ {7 }8 P$ c) A6.10 CD唱片应用程序 200
  }/ a! @& h5 Y" x; z2 ?6.10.1 新CD唱片应用程序的开始部分 2000 z" ~/ N+ ]: V4 i4 T- H
6.10.2 main函数 202
, Z0 D5 k) T6 E0 l6.10.3 建立菜单 203
: Z% L; v# B/ Z8 y6.10.4 操作数据库文件 204* A* k0 n" t% G7 ^+ _
6.10.5 查询CD数据库 209
8 j0 i/ Z  O0 u6.11 小结 213% ~6 {9 Q( {4 B1 u0 |; D3 k: Z1 ?
! x; K1 b/ e+ O7 J
第7章 数据管理 2145 c) m- w7 z: M+ l! ]1 j! c

. R" O; U! j& _6 [& J4 D7.1 内存管理 214
( |# R$ ^' C! Z- ^7.1.1 简单的内存分配 214: ~4 I( y2 K4 G4 Q) y3 w
7.1.2 分配大量的内存 215
/ ?- M0 N! V6 }2 @7 N5 B7.1.3 滥用内存 2186 L: a9 c4 |* q8 [) @& d) t
7.1.4 空指针 2191 p+ X% l% i: w$ o7 c' s
7.1.5 释放内存 220. k' U5 s% m8 T: _/ a
7.1.6 其他内存分配函数 221
' l4 R3 c8 q7 I2 U" O3 ?, c& k$ q- t7.2 文件锁定 222
% ?/ t" \, j: X, f* V1 @7.2.1 创建锁文件 222
3 Q9 l+ @: N0 z" d7.2.2 区域锁定 225+ [1 k) p- i5 W: a1 Y. X
7.2.3 锁定状态下的读写操作 227$ L. z+ k. n5 E6 S
7.2.4 文件锁的竞争 2328 s3 Y# b  V+ v$ G5 c3 m7 G# |
7.2.5 其他锁命令 236& G9 k4 A) R# |( c3 c* j7 s
7.2.6 死锁 2362 n! u: H. ]$ H7 d& @' E; g- j
7.3 数据库 2378 p3 {- |- I4 W" z* D: ]- K9 @
7.3.1 dbm数据库 237
  G$ @% c2 J. }9 _7.3.2 dbm例程 238
8 B. m5 o' |& H" a1 g; E7.3.3 dbm访问函数 239
2 Y% ^% A! a' }* ~9 A+ X7.3.4 其他dbm函数 242! o' f+ {" n& }. t$ [' |
7.4 CD唱片应用程序 2444 s1 V/ [  {- W
7.4.1 更新设计 2442 M% p' a: O6 b+ k  G1 M6 V
7.4.2 使用dbm数据库的CD唱片应用程序 245
8 }4 N. d' k4 T) B7.5 小结 262
% B5 d) z0 _% w/ D. x4 }6 g, H# L" i7 R
第8章 MySQL 263
! l* h$ t' [$ J$ A6 U$ f" o% P% _0 `( f* X" V4 P
8.1 安装 2634 Y) a/ y( D$ }
8.1.1 MySQL软件包 264
4 ~4 R, `' e  [8 o8.1.2 安装后的配置 266
+ I8 D. J4 \$ B. ?- S. W3 S8.1.3 安装后的故障修复 270
4 p' e: I- P( g6 [8.2 MySQL管理 270$ v& [: y% c7 `! b* x# d
8.2.1 命令 2704 o4 n# P4 Y* T7 x# C. z1 i
8.2.2 创建用户并赋予权限 274% ~3 q5 ?* z& d
8.2.3 密码 276) ~4 A5 i) `1 D& z  N( l
8.2.4 创建数据库 276
1 z. c4 C; R3 E9 E3 c8.2.5 数据类型 277
4 G3 ~3 y6 k- X) \/ p2 P4 A8.2.6 创建表 2782 G0 K. T% _- {  f
8.2.7 图形化工具 280
! |* T# u# n% V1 R8.3 使用C语言访问MySQL数据 283. |: M# W! r9 H4 U
8.3.1 连接例程 283
( {! {$ m' D0 R, K9 W  Z& m8.3.2 错误处理 287
( S' r" ?2 G8 X- i, C3 [' p! @8.3.3 执行SQL语句 2880 z2 |0 c) q$ M* g0 i. f
8.3.4 更多的函数 301
6 N9 m1 H  P5 Z+ O2 O8.4 CD数据库应用程序 301
$ k3 W4 Z5 q1 h& u3 G1 S% q& }8.4.1 创建表 302
/ ?6 y% s% \. e6 |  p  |, }8.4.2 添加数据 304) h5 d) Z; L% ~4 }+ Q) d/ o; S9 _
8.4.3 使用C语言访问数据 306& c  I0 r  a7 Y6 E0 m; k
8.5 小结 316
2 c6 T9 \& [% |/ Y" J% l
# A1 \" C0 n/ E& \第9章 开发工具 317( W% N: U. h/ J* y/ O9 x) A- }
/ G# q/ K' ?: e
9.1 多个源文件带来的问题 317
4 q' K+ d% H# x% I/ P7 I  P; G9.2 make命令和makefile文件 318# o. E5 ]$ ]4 @
9.2.1 makefile的语法 318
  a5 `* G. a: p# T" a8 V' P9.2.2 make命令的选项和参数 318  l- J* v6 M. ~+ t5 s4 Z9 e
9.2.3 makefile文件中的注释 321: v/ [& u" w' J9 l& a& ?
9.2.4 makefile文件中的宏 321' z+ D9 J' J1 S9 e
9.2.5 多个目标 323
$ i. n5 i8 R; f+ Q3 ]0 T) e7 e3 E9.2.6 内置规则 3252 A9 B4 {+ d6 x/ X
9.2.7 后缀和模式规则 326
. @2 p2 V  V5 T9.2.8 用make管理函数库 327; u1 ^2 \0 W  ]# P% M/ u7 U; E' @" t
9.2.9 高级主题:makefile文件和子目录 329
4 S$ L& b7 l' Y) l9.2.10 GNU make和gcc 329' E" }" k3 q+ e% V2 S7 b
9.3 源代码控制 330
. ?0 m) ^1 U$ k* X9.3.1 RCS 331, d# n; O# R1 ?0 j! r
9.3.2 SCCS 336
9 j2 T( O, D6 g0 n0 J9.3.3 RCS和SCCS的比较 336( X+ U4 C- ?; e3 G4 S+ t
9.3.4 CVS 337
& I& l, S: M8 `1 j, G9.3.5 CVS的前端程序 340
) u1 Z! H7 ?, e% ?& ^9.3.6 Subversion 341
4 r- L% t$ I  C6 t4 U9.4 编写手册页 342+ B! h1 o+ R; N7 z; T
9.5 发行软件 345
- p8 l( R, o2 E% l+ S6 Q5 s8 p( b2 @9.5.1 patch程序 3457 u) C% [! N+ v( f
9.5.2 其他软件发行工具 347& R$ k9 G) `0 J( v' v
9.6 RPM软件包 349
: ]6 `+ z0 N  }/ `7 i/ q9.6.1 使用RPM软件包文件 349
5 |8 W: j: d2 V( q' D2 L6 e8 `3 k1 @9.6.2 安装RPM软件包 350. T8 V6 @/ j# |. z; _. X7 r$ w2 w& Z
9.6.3 创建RPM软件包 350
& f9 O# n7 D  y/ _( d9.7 其他软件包格式 358
& U* n7 B, U) c  i: \9.8 开发环境 358
# y8 E7 k( D- G9.8.1 KDevelop 358
% S* J, w3 U) k, X5 ?( N9.8.2 其他开发环境 360
+ c8 h; m8 Z; ^0 @5 _- n& w. g& p3 }  w9.9 小结 360  X$ h$ N& [% B+ F  v( B; Q

  G2 |( O, `3 T9 O7 J1 D第10章 调试 361" E# ]! j, ^+ Z
6 F  g0 k* w$ w1 v
10.1 错误类型 361
3 }% h! j8 ]! O  Y% O10.2 常用调试技巧 362
- @9 v! B. H# S# Z5 I& J$ H10.2.1 有漏洞的程序 362( _5 j! g( l7 C* N) p) G% o  X' j8 B
10.2.2 代码检查 3640 L9 C* N3 U/ E4 W& T8 _
10.2.3 取样法 3655 ]. k' K0 |" w
10.2.4 程序的受控执行 3677 F& g6 e4 N( w8 {9 S' f1 K) {
10.3 使用gdb进行调试 368
: R) O% t' G  w0 k# J3 X" C10.3.1 启动gdb 368' Z) E' j+ K1 H
10.3.2 运行一个程序 369
8 [( }4 \6 `2 u- z7 [5 n0 U10.3.3 栈跟踪 3692 B! g$ x0 h" T
10.3.4 检查变量 370
1 X5 d" ^# W% s# O10.3.5 列出程序源代码 370  x! D  k) J. \8 H4 [( @' k
10.3.6 设置断点 371
) L1 D! g! h6 D8 _! g10.3.7 用调试器打补丁 374, A. R/ z. T" L: C* z
10.3.8 深入学习gdb 375
' [0 ?( r/ C* r% E8 ]- K10.4 其他调试工具 375/ y1 j% p! y0 r$ U
10.4.1 lint:清理程序中的“垃圾” 376
/ W1 |' U: B& a10.4.2 函数调用工具 378, L8 e" U8 \) a  b1 q' N& y
10.4.3 用prof/gprof产生执行存档 3805 g- H, Z/ B' Y- }
10.5 断言 381+ f% X) O, ?4 c8 _2 v+ C8 Y& L
10.6 内存调试 383" p0 U3 V- J: \4 d! v5 H( n4 y+ S
10.6.1 ElectricFence函数库 383
3 M6 \( F' w6 _* Y" |/ U6 q10.6.2 valgrind 384
- M; Z5 k1 j: V& g$ ?10.7 小结 387
# Z9 E( Y9 o1 ?6 w% P+ V$ o
6 h6 ]3 C* k/ o1 o5 F5 Y第11章 进程和信号 388
7 @  T! P  W6 I4 u& w5 a" Z5 f  w
1 |' l, w) K. I7 T$ p11.1 什么是进程 388) x" F0 h. M. y. b/ y
11.2 进程的结构 3882 a" J% W" T) D2 N+ m0 s
11.2.1 进程表 390
% t) j! |" w- {) Z4 m11.2.2 查看进程 390
; z! A6 r3 M1 U11.2.3 系统进程 391
* c$ q( ~% q3 k8 r4 H11.2.4 进程调度 393$ H+ g' k; y) j. i5 m2 N; ^
11.3 启动新进程 394
' A1 t! R3 e: ^- h11.3.1 等待一个进程 3991 Z8 E) X5 \  ?4 M
11.3.2 僵尸进程 401
. k% j% h. I* `. r3 r3 k11.3.3 输入和输出重定向 403
( o8 e: O2 r$ R6 c11.3.4 线程 404
2 p* P9 {1 ~+ N5 R1 r0 Y. `# `11.4 信号 4046 n& f0 N7 |3 A- c7 _
11.4.1 发送信号 408
! ~' }. s- E; J3 }11.4.2 信号集 412
* [+ K( ]- L% u% ?! ?11.5 小结 415
# N$ ?0 J' C7 b6 W* H
/ ~  X/ X1 X5 g: ^: j5 e第12章 POSIX线程 416
2 W% J/ H& }7 q: q8 y& Y3 w7 Z
: q2 w* \" y% y" B12.1 什么是线程 416
4 W7 k- B' I+ D2 p1 r/ Y+ F12.2 线程的优点和缺点 417
/ T1 A( P& b1 Q) c$ A- w12.3 第一个线程程序 4185 d; ^# f) o. C/ D8 m% N/ |. L1 f
12.4 同时执行 421
: s3 y  B6 ]+ l0 U0 g* z12.5 同步 423
( N! x* K* H" l/ w, u12.5.1 用信号量进行同步 423
9 L$ z; v! l( |; j; i9 a. ]12.5.2 用互斥量进行同步 427  g! _* o3 H+ |' P* Y( K+ T
12.6 线程的属性 431
0 j/ Y+ J% Q' }+ p. R( x7 ~. t0 o* C12.7 取消一个线程 435
3 ?1 e, G. r) p3 P1 t# h2 h4 F& S12.8 多线程 4384 ?; m. `4 R: n4 X
12.9 小结 442
4 T; O# b1 V1 P( P9 d
  O3 [' `; d: W) z: ]9 F第13章 进程间通信:管道 443. E  Z# V" H( J1 L- u

' u8 B8 f! F) ^# l+ s8 @. k1 z  |* i13.1 什么是管道 443
- z6 k+ a, Y) a- F; U$ M8 c13.2 进程管道 4446 ]+ J: E, G! q' E
13.3 将输出送往popen 4456 |% f( p' L( L2 S; Z% K0 ]- N7 P
13.3.1 传递更多的数据 446
" f, o" w  B( s/ w% i+ u2 C; y" o13.3.2 如何实现popen 447; n: P3 Y7 _  b% X. M1 K
13.4 pipe调用 449' H4 p  S7 q* C! p5 l, z
13.5 父进程和子进程 451
3 {9 z% I9 ~7 @! E. b% T+ ~13.5.1 管道关闭后的读操作 453
4 p4 O% o; d9 l; e( j13.5.2 把管道用作标准输入和标准输出 4545 E$ B2 R* l& U5 q
13.6 命名管道:FIFO 456( A) p; Y  |$ B% j, i; M1 f. E- H' [
13.6.1 访问FIFO文件 458
6 C1 L9 ?! m; ]  }6 V$ f3 c& U13.6.2 高级主题:使用FIFO的客户/服务器应用程序 464
2 H% S7 h9 B! H5 r, `7 m13.7 CD数据库应用程序 468
* V9 |" ^+ m# S  \2 q1 E13.7.1 目标 4692 |. S6 p0 L; r( E" k" N( n
13.7.2 实现 469, k2 }9 X3 A9 A! @8 x) w
13.7.3 客户接口函数 472
9 n3 p  P" p# K5 P1 Q13.7.4 服务器接口server.c 478
! d& ?7 c& `, k, W3 G2 F13.7.5 管道 481( W* e1 s0 [% W$ t& ?. r
13.7.6 对CD数据库应用程序的总结 487
$ {( j" x4 Z4 j5 c& ]9 |13.8 小结 487  {6 g. h. Q6 g( |+ j( R

2 a/ V  G( e( B第14章 信号量、共享内存和消息队列 488
" N6 E; a5 {! ]' ]8 P+ ~8 O+ W2 x2 Y9 W( K& V! B% V5 f" E
14.1 信号量 488$ t8 \. ~2 d/ R# I6 p% F6 J7 G
14.1.1 信号量的定义 489
# N* s% ^* }2 y9 G8 C14.1.2 一个理论性的例子 489
6 y! b+ }# n: b% V7 z3 o* H14.1.3 Linux的信号量机制 490
& H/ I0 l: l3 {$ V4 G) K+ q14.1.4 使用信号量 492
/ E- o/ \: u+ i% x14.2 共享内存 496
! Z/ d7 ]5 Y: D$ X4 I* r2 ~9 E' k14.2.1 shmget函数 497
% M& h, Q7 W$ M2 f14.2.2 shmat函数 497/ ?; z) D' j3 F- j
14.2.3 shmdt 498
4 ~0 E7 m0 C3 X" e' L14.2.4 shmctl 498
8 n7 }) o# r3 u# b; o) t14.3 消息队列 502
. h' m  c$ }( a6 P$ v14.3.1 msgget函数 502
: f4 U- E0 |" K1 N5 c3 t14.3.2 msgsnd函数 503
! D; e0 T  @2 o) b- g14.3.3 msgrcv函数 5037 a5 q; B4 d7 T
14.3.4 msgctl函数 504
1 d) ~& ^1 R/ e  e14.4 CD数据库应用程序 507, R! u" H; `' T3 X
14.4.1 修改服务器函数 507' g4 S- o' K/ }: x" _
14.4.2 修改客户函数 509
+ R+ g6 ^' A. I* t9 j4 }2 [% h14.5 IPC状态命令 511
! L' F! V. [" d2 ]5 M! @' p& {5 h14.5.1 显示信号量状态 5114 F) B+ L8 C  q; W! S# U4 ]; ~. a
14.5.2 显示共享内存状态 5119 z& y& Q5 c) @" O! q
14.5.3 显示消息队列状态 5112 ^! X# X4 i3 x3 P0 u
14.6 小结 512
% Y7 `) f9 S* @1 l4 L3 ^7 y3 g1 l4 I! R
第15章 套接字 513
( I( p3 p( O  O3 [  E7 p0 ]* T: z9 R/ y. L; U4 Z- `0 P! e9 |& d& i8 ^
15.1 什么是套接字 513
" j  B. c4 s2 d. Q15.2 套接字连接 513& U3 D: T* S( o$ Z: i
15.2.1 套接字属性 517
. g# ~" k+ p6 A* R5 E8 |9 `15.2.2 创建套接字 519
2 {$ s& i) u  c  x7 d( h1 \15.2.3 套接字地址 520
% Q0 q# Q: G2 b; Y. P2 P15.2.4 命名套接字 520
$ ~& |. Y* P/ }, S% `15.2.5 创建套接字队列 521
& `* \# x9 o$ N( ~" W15.2.6 接受连接 521
2 |1 _. H  k1 ]/ |/ C$ _15.2.7 请求连接 522; B) D! G! E2 Z
15.2.8 关闭套接字 523
: A1 m, k3 K6 T# X* ?15.2.9 套接字通信 523
% h" [' n* i  n+ G9 C15.2.10 主机字节序和网络字节序 525) Q; }0 s7 F. x0 ~
15.3 网络信息 5273 Y+ N  h! E8 |! V8 r8 V
15.3.1 因特网守护进程(xinetd/inetd) 531) b$ D9 N2 z% G9 M
15.3.2 套接字选项 533
( M% \; q5 F- F4 y  S15.4 多客户 534
2 V; N" L4 p% i1 e  r# J) ]15.4.1 select系统调用 537
3 l3 J: o; u! K15.4.2 多客户 540
3 F7 y' q$ p+ B" `6 G3 A15.5 数据报 543
' z- s/ Z. u7 k9 V; A- }$ S" {15.6 小结 545
  S7 Z- ?" v7 ?, y! D
* C6 Y8 y, `- S) x: j第16章 用GTK+进行GNOME编程 546
& ^" u6 G2 N3 Y* z+ l
% m" q; @4 r. I7 c) G( y16.1 X视窗系统简介 5466 Z# j5 @; Z1 G: H' R
16.1.1 X服务器 547
6 ?- `7 `  R, `( r: W7 x16.1.2 X客户端 5474 N3 n0 {/ O$ f6 {/ a  F  t
16.1.3 X协议 547: Q( B. X# Z- a, e( C0 `& h+ P
16.1.4 Xlib库 547: x- T4 @4 @/ d0 T* @6 e7 r
16.1.5 X工具包 547
2 s8 N0 K3 S% ]7 u! n0 E7 O16.1.6 窗口管理器 548, u4 f6 @6 s# G( }+ {1 w8 a7 u0 l8 `
16.1.7 创建GUI的其他方法——平台无关的窗囗API 548' q# D% ]; x) f7 h8 @4 q
16.2 GTK+简介 5490 B8 Z: o, r6 p  D9 c
16.2.1 GLib类型系统 5492 `* q, j: X- e4 h& Z
16.2.2 GTK+对象系统 550  U5 T1 }2 m: d0 J$ ]5 w
16.2.3 GNOME简介 550
$ T5 N5 W- G+ r16.2.4 安装GNOME/GTK+开发库 551& X6 S8 t: _2 O8 M
16.3 事件、信号和回调函数 554# N' f+ B8 {# B) s2 ^) |3 A
16.4 组装盒构件 556# F4 b9 f0 h0 t) Z! o; h0 h
16.5 GTK+构件 559
9 n& u" _0 s  p7 S& S; l16.5.1 GtkWindow 559
9 _8 [( Q: X( Z. ?16.5.2 GtkEntry 560/ O  G, s: n6 u6 E& ^& i+ Y
16.5.3 GtkSpinButton 563
- J5 Q  s9 ~( q) m6 g- E  h% n& m$ _16.5.4 GtkButton 565: I6 `) o" ]+ r5 l
16.5.5 GtkTreeView 568
6 T5 i+ v1 O9 J8 k16.6 GNOME构件 571
5 i/ L6 Q9 l" g2 v16.7 GNOME菜单 5723 Q6 o, \& s* T1 u* a3 l' _. h
16.8 对话框 5764 S9 V+ N3 @& ~) {9 C, Z
16.8.1 GtkDialog 577
, [1 k! ]7 g0 l0 f16.8.2 模式对话框 578
$ m' I# a4 Y9 f  o$ @16.8.3 非模式对话框 579
6 S+ D7 a8 k7 T4 Y" t5 W16.8.4 GtkMessageDialog 580- f+ ~& o  O; j4 j+ Q$ _
16.9 CD数据库应用程序 5812 L: ?7 q1 U0 u
16.10 小结 5927 f: k! t0 q! w* S  }
. L! b  K( }4 Y
第17章 用Qt进行KDE编程 593* R" _8 O' J4 `( @1 P8 @" U

; r9 G2 {" J4 F+ [$ Y17.1 KDE和Qt简介 593
5 P' F4 o- _) M  a$ W1 `+ I17.2 安装Qt 594
9 _- V1 {: m/ M4 V8 k5 ?17.3 信号和槽 596
- ?- T1 L* C- J" l9 [7 c1 f# W17.4 Qt构件 602/ h5 k8 _' d! d- v7 {9 s
17.4.1 QLineEdit 6027 x9 k3 r! K) Q
17.4.2 Qt按钮 605* y; i7 _1 h( v. N8 [2 n
17.4.3 QComboBox 609
9 j. ]3 R5 F0 `! G17.4.4 QListView 613' t: k% ^5 I0 }+ t# n% E
17.5 对话框 615+ ]. P* u4 }1 o8 P, H
17.5.1 QDialog 615
* Q! p' l, ~+ h% B0 Z# F  q17.5.2 QMessageBox 617
/ p( u8 z* r; Z# N17.5.3 QInputDialog 618  r3 ~0 D( R  h
17.5.4 使用qmake简化makefile文件的编写 6208 O* h" Y6 O& P$ `4 B7 n
17.6 KDE的菜单和工具栏 620, U' G6 D$ X/ w7 w3 K' j; H
17.7 使用KDE/Qt编写CD数据库应用程序 624) F4 l6 L9 }. o; `
17.7.1 主窗口 624. F# E  L5 l( |7 H
17.7.2 AddCdDialog 627
. ]  [$ D" r) g" }/ t17.7.3 LogonDialog 629
" I. c! A& C5 p* T0 f. M17.7.4 main.cpp 630. y+ G+ e4 W& }4 Y5 M; N
17.8 小结 632
1 `' R$ l7 e, b. c+ T
! s/ c7 h2 Q0 W/ a8 S第18章 Linux标准 633
  H: F& l: @- R- j' ^- z4 W. K8 s
* l3 F$ J% T; A18.1 C编程语言 634
1 d; S4 n! p" q6 d- [* W18.1.1 发展历史简介 634
3 b8 X1 F; L# r' E% d18.1.2 GNU编译器集 634
; L0 Q7 n% p3 h3 \; B1 q# [18.1.3 gcc选项 635
: R2 D) s; |, X18.2 接口和LSB 636
6 z7 O# u+ E- Y+ b18.2.1 LSB标准函数库 637
7 a( w6 r$ e$ ^* p18.2.2 LSB用户和组 6387 c' a3 x' e! B2 b7 }& |) @
18.2.3 LSB系统初始化 638' m: \9 h5 A% R2 u
18.3 文件系统层次结构标准 639! I: Q" {$ R3 @. {: u: ]4 L
18.4 更多标准 642
; V! H) B* N$ Z* ?( k. n1 q( n& Q5 L18.5 小结 642
2 ?% V5 {$ V! B7 C( Q& L% I
2 Q# G; i" j  J/ u* \. ]& Y/ _4 v: H- S  Y6 z8 h/ c' R

评分

参与人数 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 | 显示全部楼层
这本书有没有电子版的呢//

发表回复

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

本版积分规则

关闭

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

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

小黑屋|手机版|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-4-21 13:22

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