书籍详情
高级UNIX程序设计
作者:(美)罗克金德(Rochkind, M.J.)著
出版社:清华大学出版社
出版时间:2006-04-01
ISBN:9787302126454
定价:¥69.00
购买这本书可以去
内容简介
系统函数决定了什么是UNIX,其他的(如子例程和命令)都是建立在系统函数的基础之上。现今的UNIX说明书中有1100多个系统函数,要掌握这些函数是件很困难的事。本书主要介绍了其中最常用的300多个系统函数。全书包括基本概念、基本文件I/O、高级文件I/0、终端I/0、进程与线程、基本进程间通信、高级进程间通信、网络技术与套接字,以及信号与定时器等9章。 本书给出了数千行的示例代码,所有这些代码都可以从本书网~kwww.basepath.com/aup下载。本书每章的末尾都给出了一些练习。这些练习的难易程度各不相同,一些只需几句话就可以回答,一些是简单的程序设计问题,还有一些则可以作为每学期的UNIX程序设计项目练习。
作者简介
暂缺《高级UNIX程序设计》作者简介
目录
Preface xi
Chapter 1 Fundamental Concepts l
1.1 A Whirlwind Tour of UNIX and Linux 1
1.2 Versions of UNIX 16
1.3 UsinR Svstem Calls 19
1.4 Error Handling 24
1.5 UNIX Standards 38
1.6 Common Header File 55
1.7 Dates and Times 56
1.8 AbOUt the Example COde 67
1.9 Essential Resources 68
Chapter 2 Basic File I/O 7l
2.1 IntrodUCtion tO File I/O 7l
2.2 File Descriptors and ODen File DeSCriptions 72
2.3 Svmbols for File Perlilission Bits 75
2.4 open and creat System Calls 76
2.5 umask Svstem Call 86
2.6 unl ink Svstem Call 86
2.7 Creating Temporarv Files 88
2.8 File Offsets and O APPEND 90
2.9 wri te Svstem Call 92
2.10 read Svstem Call 96
2.1 l close Svstem CaU 97
2.12 User Bufiered I/O 98
2.13 lseek Svstem Call 105
2.14 pread and pwrite Svstem CaIls 108
2.15 readv and writev System Calls 110
2.16 Svnchronized I/O l14
2.17 truncate and ftruncate Svstem Calls l19
Chapter 3 Advanced File I/O l23
3.1 Introduction l23
3.2 Disk SDecial FiIes and File Systems l23
3.3 Hard and SvmboIic Links l37
3.4 Pathnames 144
3.5 Accessing and Displaying File Metadata l47
3.6 Directories 158
3.7 Changing an I-Node l8l
3.8 More File-Manipulation Calls l85
3.9 Asynchronous I/O l89
Chapter 4 TerminaI I/O 203
4.1 Introduction 203
4.2 Reading from a Terminal 204
4.3 Sessions and Process Grouos (Jobs) 224
4.4 ioctl System Call 232
4.5 Setting Terminal Attributes 233
4.6 Additional Terminal-Contr01 Svstem Calls 245
4.7 Terminal-Identification System Calls 248
4.8 Full-Screen A019licatiOns 250
4.9 STREAMS I/O 255
4.10 Pseudo Terminals 256
Chapter 5 Processes and Threads 277
5.1 IntroductiOn 277
5.2 Environment 277
5.3 exec System Calls 284
5.4 Implemeriting a Shell(Version 1) 292
5.5 fork System CaU 296
5.6 Implementing a Shell(Version 2) 300
5.7 exit System Calls and Process TelTflinatiOn 30l
5.8 wait.waitpid.and waitid Svstem Calls 304
5.9 Signals、Termination,and Waiting 3l3
5.10 Implementing a Shell(Version 3) 314
5.1l Gettin2 User and Group IDs 315
5.12 Setting User and Grouo IDs 317
5.13 Getting Process IDs 319
5.14 chroot Svstem Call 3 19
5.1 5 Getting and Setting the PrioritV 320
5.16 Process Limits 322
5.1 7 Introduction to Threads 329
5.1 8 The BlOcking Problem 350
Chapter 6 Basic Interprocess Communication 36l
6.1 Introduction 36 1
6.2 Pipes 362
6.3 dup and dup2 System Calls 371
6.4 A Real Shell 376
6.5 TWO-Way CommunicatiOn with Unidirectional Pipes 390
6.6 TWO-Wav Communication with Bidirectional Pipes 399
Chapter 7 Advanced Interprocess Communication 405
7.1 Introduction 405
7.2 FIFOs,or Named Pipes 406
7-3 An Abstract Simple Messaging Interface(SMI) 414
7.4 System V IPC (InterDrocess Communication) 428
7.5 System V Message Queues 434
7.6. POSIX IPC 442
7.7 POSIX Message Queues 445
7.8 About Semaphores 458
7.9 System V Semaphores 460
7.1 0 POSIX Semaphores 469
7.11 File Locking 477
7.12 About Shared MemoFv 488
7.13 System V Shared MemorN 489
7.14 POSIX Shared Memorv 504
7.15 Performance Comoarisoils 515
Chapter 8 Networking and Sockets 519
8.1 Socket Basics 520
8.2 Socket Addresses 533
8.3 Socket Options 544
8.4 Simple Socket Interface (SSI) 549
8.5 Socket Implementation of SMI 563
8.6 Connectionless Sockets 567
8.7 Out-of-Band Data 577
8.8 Network Database Functions 578
8.9 Miscellaneous System Calls 593
8.10 High-Performance Considerations 597
Chapter 9 Signals and Timers 601
9.1 Signal Basics 601
9.2 Waiting for a Signal 624
9.3 Miscellaneous Signal System Calls 634
9.4 Deprecated Signal System Calls 635
9.5 Realtime Signals Extension (RTS) 637
9.6 Global Jumps 648
9.7 Clocks and Timers 651
Appendix A Process Attributes 667
Appendix B Ux: A C++ Wrapper for Standard UNIX Functions 673
Appendix C Jtux: A Java/Jython Interface to Standard
UNIX Functions 677
Appendix D Alphabetical and Categorical Function Lists 685
References 703
Index 705
Chapter 1 Fundamental Concepts l
1.1 A Whirlwind Tour of UNIX and Linux 1
1.2 Versions of UNIX 16
1.3 UsinR Svstem Calls 19
1.4 Error Handling 24
1.5 UNIX Standards 38
1.6 Common Header File 55
1.7 Dates and Times 56
1.8 AbOUt the Example COde 67
1.9 Essential Resources 68
Chapter 2 Basic File I/O 7l
2.1 IntrodUCtion tO File I/O 7l
2.2 File Descriptors and ODen File DeSCriptions 72
2.3 Svmbols for File Perlilission Bits 75
2.4 open and creat System Calls 76
2.5 umask Svstem Call 86
2.6 unl ink Svstem Call 86
2.7 Creating Temporarv Files 88
2.8 File Offsets and O APPEND 90
2.9 wri te Svstem Call 92
2.10 read Svstem Call 96
2.1 l close Svstem CaU 97
2.12 User Bufiered I/O 98
2.13 lseek Svstem Call 105
2.14 pread and pwrite Svstem CaIls 108
2.15 readv and writev System Calls 110
2.16 Svnchronized I/O l14
2.17 truncate and ftruncate Svstem Calls l19
Chapter 3 Advanced File I/O l23
3.1 Introduction l23
3.2 Disk SDecial FiIes and File Systems l23
3.3 Hard and SvmboIic Links l37
3.4 Pathnames 144
3.5 Accessing and Displaying File Metadata l47
3.6 Directories 158
3.7 Changing an I-Node l8l
3.8 More File-Manipulation Calls l85
3.9 Asynchronous I/O l89
Chapter 4 TerminaI I/O 203
4.1 Introduction 203
4.2 Reading from a Terminal 204
4.3 Sessions and Process Grouos (Jobs) 224
4.4 ioctl System Call 232
4.5 Setting Terminal Attributes 233
4.6 Additional Terminal-Contr01 Svstem Calls 245
4.7 Terminal-Identification System Calls 248
4.8 Full-Screen A019licatiOns 250
4.9 STREAMS I/O 255
4.10 Pseudo Terminals 256
Chapter 5 Processes and Threads 277
5.1 IntroductiOn 277
5.2 Environment 277
5.3 exec System Calls 284
5.4 Implemeriting a Shell(Version 1) 292
5.5 fork System CaU 296
5.6 Implementing a Shell(Version 2) 300
5.7 exit System Calls and Process TelTflinatiOn 30l
5.8 wait.waitpid.and waitid Svstem Calls 304
5.9 Signals、Termination,and Waiting 3l3
5.10 Implementing a Shell(Version 3) 314
5.1l Gettin2 User and Group IDs 315
5.12 Setting User and Grouo IDs 317
5.13 Getting Process IDs 319
5.14 chroot Svstem Call 3 19
5.1 5 Getting and Setting the PrioritV 320
5.16 Process Limits 322
5.1 7 Introduction to Threads 329
5.1 8 The BlOcking Problem 350
Chapter 6 Basic Interprocess Communication 36l
6.1 Introduction 36 1
6.2 Pipes 362
6.3 dup and dup2 System Calls 371
6.4 A Real Shell 376
6.5 TWO-Way CommunicatiOn with Unidirectional Pipes 390
6.6 TWO-Wav Communication with Bidirectional Pipes 399
Chapter 7 Advanced Interprocess Communication 405
7.1 Introduction 405
7.2 FIFOs,or Named Pipes 406
7-3 An Abstract Simple Messaging Interface(SMI) 414
7.4 System V IPC (InterDrocess Communication) 428
7.5 System V Message Queues 434
7.6. POSIX IPC 442
7.7 POSIX Message Queues 445
7.8 About Semaphores 458
7.9 System V Semaphores 460
7.1 0 POSIX Semaphores 469
7.11 File Locking 477
7.12 About Shared MemoFv 488
7.13 System V Shared MemorN 489
7.14 POSIX Shared Memorv 504
7.15 Performance Comoarisoils 515
Chapter 8 Networking and Sockets 519
8.1 Socket Basics 520
8.2 Socket Addresses 533
8.3 Socket Options 544
8.4 Simple Socket Interface (SSI) 549
8.5 Socket Implementation of SMI 563
8.6 Connectionless Sockets 567
8.7 Out-of-Band Data 577
8.8 Network Database Functions 578
8.9 Miscellaneous System Calls 593
8.10 High-Performance Considerations 597
Chapter 9 Signals and Timers 601
9.1 Signal Basics 601
9.2 Waiting for a Signal 624
9.3 Miscellaneous Signal System Calls 634
9.4 Deprecated Signal System Calls 635
9.5 Realtime Signals Extension (RTS) 637
9.6 Global Jumps 648
9.7 Clocks and Timers 651
Appendix A Process Attributes 667
Appendix B Ux: A C++ Wrapper for Standard UNIX Functions 673
Appendix C Jtux: A Java/Jython Interface to Standard
UNIX Functions 677
Appendix D Alphabetical and Categorical Function Lists 685
References 703
Index 705
猜您喜欢