图书介绍
Linux应用程序开发 第2版 英文版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)约翰逊(Johnson,M.K.),(美)特罗安(Troan,E.W.)著 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115149410
- 出版时间:2006
- 标注页数:702页
- 文件大小:100MB
- 文件页数:726页
- 主题词:Linux操作系统-程序设计-英文
PDF下载
下载说明
Linux应用程序开发 第2版 英文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
Part 1 Getting Started1
Chapter 1 History of Linux Development3
1.1 A Short History of Free Unix Software4
1.2 Development of Linux6
1.3 Notional Lineage of Unix Systems7
1.4 Linux Lineage9
Chapter 2 Licenses and Copyright11
2.1 Copyright11
2.2 Licensing13
2.3 Free Software Licenses14
2.3.1 The GNU General Public License15
2.3.2 The GNU Library General Public License15
2.3.3 MIT/X/BSD-Style Licenses16
2.3.4 Old BSD-Style Licensses16
2.3.5 Artistic License16
2.3.6 License Incompatibilities17
Chapter 3 Online System Documentation19
3.1 The man Pages19
3.2 The Info Pages20
3.3 Other Documentation21
Part 2 Development Tools and Environment23
Chapter 4 Development Tools25
4.1 Editors26
4.1.1 Emacs27
4.1.2 vi28
4.2 Make29
4.2.1 Complex Command Lines32
4.2.2 Variables33
4.2.3 Suffix Rules34
4.3 The GNU Debugger35
4.4 Tracing Program Actions40
Chapter 5 gcc Options and Extensions43
5.1 gcc Options44
5.2 Header Files47
5.2.1 long long47
5.2.2 Inline Functions47
5.2.3 Alternative Extended Keywords47
5.2.4 Attributes48
Chapter 6 The GNU C Library49
6.1 Feature Selection49
6.2 POSIX Interfaces52
6.2.1 POSIX Required Types52
6.2.2 Discovering Run-Time Capabilities54
6.2.3 Finding and Setting Basic System Information55
6.3 Compatibility57
Chapter 7 Memory Debugging Tools59
7.1 Buggy Code59
7.2 Memory-Checking Tools Included in glibc62
7.2.1 Finding Memory Heap Corruption62
7.2.2 Using mtrace()to Track Allocations65
7.3 Finding Memory Leaks with mpr66
7.4 Investigating Memory Errors with Valgrind69
7.5 Electric Fence74
7.5.1 Using Electric Fence75
7.5.2 Memory Alignment76
7.5.3 Other Features77
7.5.4 Limitations78
7.5.5 Resource Consumption78
Chapter 8 Creating and Using Libraries79
8.1 Static Libraries79
8.2 Shared Libraries80
8.3 Designing Shared Libraries81
8.3.1 Managing Compatibility82
8.3.2 Incompatible Libraries83
8.3.3 Designing Compatible Libraries83
8.4 Building Shared Libraries84
8.5 Installing Shared Libraries85
8.5.1 Example86
8.6 Using Shared Libraries88
8.6.1 Using Noninstalled Libraries88
8.6.2 Preloading Libraries89
Chapter 9 Linux System Environment91
9.1 The Process Environment91
9.2 Understanding System Calls92
9.2.1 System Call Limitations93
9.2.2 System Call Return Codes94
9.2.3 Using System Calls96
9.2.4 Common Error Return Codes97
9.3 Finding Header and Library Files102
Part 3 System Programming103
Chapter 10 The Process Model105
10.1 Defining a Process105
10.1.1 Complicating Things with Threads106
10.1.2 The Linux Approach106
10.2 Process Attributes107
10.2.1 The pid and Parentage107
10.2.2 Credentials108
10.2.3 The filesystem uid113
10.2.4 User and Group ID Summary113
10.3 Process Information115
10.3.1 Program Arguments115
10.3.2 Resource Usage118
10.3.3 Establishing Usage Limits120
10.4 Process Primitives121
10.4.1 Having Children122
10.4.2 Watching Your Children Die123
10.4.3 Running New Programs125
10.4.4 Faster Process Creation with vfork()127
10.4.5 Killing Yourself128
10.4.6 Killing Others129
10.4.7 Dumping Core130
10.5 Simple Children131
10.5.1 Running and Waiting with sy stem()131
10.5.2 Reading or Writing from a Process132
10.6 Sessions and Process Groups134
10.6.1 Sessions135
10.6.2 Controlling Terminal136
10.6.3 Process Groups136
10.6.4 Orphaned Process Groups138
10.7 Introduction to ladsh139
10.7.1 Running External Programs with ladsh140
10.8 Creating Clones153
Chapter 11 Simple File Handling155
11.1 The File Mode158
11.1.1 File Access Permissions159
11.1.2 File Permission Modifiers161
11.1.3 File Types162
11.1.4 The Process's umask163
11.2 Basic File Operations165
11.2.1 File Descriptors165
11.2.2 Closing Files166
11.2.3 Opening Filesin the FileSystem166
11.2.4 Reading,Writing,and Moving Around168
11.2.5 Partial Reads and Writes173
11.2.6 Shortening Files175
11.2.7 Synchronizing Files175
11.2.8 Other Operations176
11.3 Querying and Changing Inode Information177
11.3.1 Finding Inode Information177
11.3.2 A Simple Example of stat()178
11.3.3 Easily Determining Access Rights181
11.3.4 Changing a File's Access Permissions182
11.3.5 Changing a File's Owner and Group182
11.3.6 Changing a File's Timestamps183
11.3.7 Ext3 Extended Attributes184
11.4 Manipulating Directory Entries188
11.4.1 Creating Device and Named Pipe Entries189
11.4.2 Creating Hard Links191
11.4.3 Using Symbolic Links192
11.4.4 Removing Files194
11.4.5 Renaming Files194
11.5 Manipulating File Descriptors195
11.5.1 Changing the Access Mode for an Open File195
11.5.2 Modifiying the close-on-exec Flag196
11.5.3 Duplicating File Descriptors196
11.6 Creating Unnamed Pipes198
11.7 Adding Redirection to ladsh198
11.7.1 The Data Structures199
11.7.2 Changing the Code200
Chapter 12 Signal Processing203
12.1 Signal Concepts204
12.1.1 Life Cycle of a Signal204
12.1.2 Simple Signals205
12.1.3 Reliable Signals207
12.1.4 Signals and System Calls208
12.2 The Linux(and POSIX)Signal API209
12.2.1 Sending Signals209
12.2.2 Using sigset_t210
12.2.3 Catching Signals211
12.2.4 Manipulating a Process's Signal Mask213
12.2.5 Finding the Set of Pending Signals215
12.2.6 Waiting for Signals216
12.3 Available Signals217
12.3.1 Describing Signals221
12.4 Writing Signal Handlers222
12.5 Reopening Log Files224
12.6 Real-Time Signals227
12.6.1 Signal Queueing and Ordering228
12.7 Learning About a Signal231
12.7.1 Getting a Signal's Context231
12.7.2 Sending Data with a Signal237
Chapter 13 Advanced File Handling241
13.1 Input and Output Multiplexing241
13.1.1 Nonblocking I/O244
13.1.2 Multiplexing with poll()245
13.1.3 Multiplexing with select()249
13.1.4 Comparing poll()and select()253
13.1.5 Multiplexing with epoll256
13.1.6 Comparing poll()and epoll263
13.2 Memory Mapping266
13.2.1 Page Alignment267
13.2.2 Establishing Memory Mappings268
13.2.3 Unmapping Regions273
13.2.4 Syncing Memory Regions to Disk274
13.2.5 Locking Memory Regions275
13.3 File Locking276
13.3.1 Lock Files276
13.3.2 Record Locking279
13.3.3 Mandatory Locks285
13.3.4 Leasing a File285
13.4 Alternatives to read()and write()289
13.4.1 Scatter/Gather Reads and Writes290
13.4.2 Ignoring the File Pointer291
Chapter 14 Directory Operations293
14.1 The Current Working Directory293
14.1.1 Finding the Current Working Directory293
14.1.2 The.and..Special Files295
14.1.3 Changing the Current Directory295
14.2 Changing the Root Directory296
14.3 Creating and Removing Directories297
14.3.1 Creating New Directories297
14.3.2 Removing Directories297
14.4 Reading a Directory's Contents297
14.4.1 Starting Over299
14.5 File Name Globbing300
14.5.1 Use a Subprocess300
14.5.2 Internal Globbing301
14.6 Adding Directories and Globbing to ladsh306
14.6.1 Adding cd and pwd306
14.6.2 Adding File Name Globbing307
14.7 Walking File System Trees311
14.7.1 Using ftw()311
14.7.2 File Tree Walks with nftw()313
14.7.3 Implementing find315
14.8 Directory Change Notification317
Chapter 15 Job Control325
15.1 Job Control Basics325
15.1.1 Restarting Processes325
15.1.2 Stopping Processes326
15.1.3 Handling Job Control Signals327
15.2 Job Control in ladsh328
Chapter 16 Terminals and Pseudo Terminals335
16.1 tty Operations336
16.1.1 Terminal Utility Functions337
16.1.2 Controlling Terminals338
16.1.3 Terminal Ownership339
16.1.4 Recording with utempter340
16.1.5 Recording by Hand341
16.2 termios Overview351
16.3 termios Examples353
16.3.1 Passwords353
16.3.2 Serial Communications355
16.4 termios Debugging370
16.5 termios Reference371
16.5.1 Functions372
16.5.2 Window Sizes376
16.5.3 Flags377
16.5.4 Input Flags378
16.5.5 Output Flags380
16.5.6 Control Flags381
16.5.7 Control Characters383
16.5.8 Local Flags385
16.5.9 Controlling read()387
16.6 Pseudo ttys389
16.6.1 Opening Pseudo ttys389
16.6.2 Opening Pseudo ttys the Easy Ways391
16.6.3 Opening Pseudo ttys the Hard Ways392
16.6.4 Pseudo tty Examples396
Chapter 17 Networking with Sockets407
17.1 Protocol Support407
17.1.1 Nice Networking408
17.1.2 Real Networking408
17.1.3 Making Reality Play Nice409
17.1.4 Addresses410
17.2 Utility Functions411
17.3 Basic Socket Operations412
17.3.1 Creating a Socket412
17.3.2 Establishing Connections414
17.3.3 Binding an Address to a Socket414
17.3.4 Waiting for Connections415
17.3.5 Connecting to a Server416
17.3.6 Finding Connection Addresses417
17.4 Unix Domain Sockets418
17.4.1 Unix Domain Addresses418
17.4.2 Waiting for a Connection419
17.4.3 Connecting to a Server422
17.4.4 Running the Unix Domain Examples423
17.4.5 Unnamed Unix Domain Sockets423
17.4.6 Passing File Descriptors424
17.5 Networking Machines with TCP/IP429
17.5.1 Byte Ordering430
17.5.2 IPv4 Addressing431
17.5.3 IPv6 Addressing433
17.5.4 Manipulating IP Addresses435
17.5.5 Turning Names into Addresses437
17.5.6 Turning Addresses into Names449
17.5.7 Listening for TCP Connections455
17.5.8 TCP Client Applications457
17.6 Using UDP Datagrams459
17.6.1 Creating a UDP Socket460
17.6.2 Sending and Receiving Datagrams461
17.6.3 A Simple tftp Server463
17.7 Socket Errors469
17.8 Legacy Networking Functions471
17.8.1 IPv4 Address Manipulation471
17.8.2 Hostname Resolution473
17.8.3 Legacy Host Information Lookup Example475
17.8.4 Looking Up Port Numbers476
Chapter 18 Time481
18.1 Telling Time and Dates481
18.1.1 Representing Time481
18.1.2 Converting,Formatting,and Parsing Times484
18.1.3 The Limits of Time489
18.2 Using Timers490
18.2.1 Sleeping491
18.2.2 Interval Timers492
Chapter 19 Random Numbers497
19.1 Pseudo-Random Numbers497
19.2 Cryptography and Random Numbers498
Chapter 20 Programming Virtual Consoles501
20.1 Getting Started502
20.2 Beeping505
20.3 Determining Whetherthe Terminal Is a VC506
20.4 Finding the Current VC506
20.5 Managing VC Switching507
20.6 Example:The open Command510
Chapter 21 The Linux Console513
21.1 Capability Databases514
21.2 Glyphs,Characters,and Maps516
21.3 Linux Console Capabilities516
21.3.1 Control Characters518
21.3.2 Escape Sequences519
21.3.3 Testing Sequences521
21.3.4 Complex Escape Sequences521
21.4 Direct Screen Writing526
Chapter 22 Writing Secure Programs531
22.1 When Security Matters531
22.1.1 When Security Fails533
22.2 Minimizing the Opportunity for Attack534
22.2.1 Giving Up Permissions534
22.2.2 Getting a Helping Hand535
22.2.3 Restricting File System Access536
22.3 Common Security Holes537
22.3.1 Buffer Overflows537
22.3.2 Parsing Filenames543
22.3.3 Environment Variables544
22.3.4 Running the Shell545
22.3.5 Creating Temporary Files545
22.3.6 Race Conditions and Signal Handlers548
22.3.7 Closing File Descriptors549
22.4 Running as a Daemon550
Part 4 Development Libraries553
Chapter 23 String Matching555
23.1 Globbing Arbitrary Strings555
23.2 Regular Expressions556
23.2.1 Linux Regular Expressions557
23.2.2 Regular Expression Matching557
23.2.3 A Simple grep562
Chapter 24 Terminal Handling with S-Lang569
24.1 Input Handling570
24.1.1 Initializing S-Lang Input Handling571
24.1.2 Restoring the Terminal State572
24.1.3 Reading Characters from the Terminal572
24.1.4 Checking for Pending Input573
24.2 Output Handling573
24.2.1 Initializing Screen Management574
24.2.2 Updating the Display574
24.2.3 Moving the Cursor575
24.2.4 Finishing Screen Management575
24.2.5 Skeleton Screen Management575
24.2.6 Switching Character Sets576
24.2.7 Writing to the Screen577
24.2.8 Drawing Lines and Boxes579
24.2.9 Using Color581
Chapter 25 A Hashed Database Library583
25.1 Overview584
25.2 Basic Operations585
25.2.1 Opening a qdbm File585
25.2.2 Closing a Database586
25.2.3 Obtaining the File Descriptor587
25.2.4 Syncing the Database587
25.3 Reading Records587
25.3.1 Reading a Particular Record587
25.3.2 Reading Records Sequentially589
25.4 Modifying the Database589
25.4.1 Adding Records590
25.4.2 Removing Records590
25.5 Example591
Chapter 26 Parsing Command-Line Options597
26.1 The Option Table598
26.1.1 Defining the Options598
26.1.2 Nesting Option Tables601
26.2 Using the Option Table602
26.2.1 Creating a Context602
26.2.2 Parsing the Command Line604
26.2.3 Leftover Arguments605
26.2.4 Automatic Help Messages606
26.3 Using Callbacks608
26.4 Error Handling612
26.5 Option Aliasing614
26.5.1 Specifying Aliases615
26.5.2 Enabling Aliases615
26.6 Parsing Argument Strings616
26.7 Handling Extra Arguments617
26.8 Sample Application617
Chapter 27 Dynamic Loading at Run Time619
27.1 The dl Interface620
27.1.1 Example624
Chapter 28 User Identification and Authentication627
28.1 ID-to-Name Translation627
28.1.1 Example:The id Command630
28.2 Pluggable Authentication Modules635
28.2.1 PAM Conversations636
28.2.2 PAM Actions638
Appendices647
Appendix A Header Files649
Appendix B ladsh Source Code651
Glossary671
Bibliography679
Index683
热门推荐
- 2504587.html
- 2849207.html
- 1160679.html
- 2292247.html
- 2041792.html
- 3772476.html
- 1188345.html
- 1192864.html
- 2947525.html
- 224531.html
- http://www.ickdjs.cc/book_2647082.html
- http://www.ickdjs.cc/book_3016077.html
- http://www.ickdjs.cc/book_1128175.html
- http://www.ickdjs.cc/book_541166.html
- http://www.ickdjs.cc/book_1176640.html
- http://www.ickdjs.cc/book_2992936.html
- http://www.ickdjs.cc/book_28018.html
- http://www.ickdjs.cc/book_22512.html
- http://www.ickdjs.cc/book_1636655.html
- http://www.ickdjs.cc/book_1065060.html