Advanced Programming in the UNIX® Environment
Author: W Richard Stevens
"This is the definitive reference book for any serious or professional UNIX systems programmer. Rago has updated and extended the original Stevens classic while keeping true to the original."
—Andrew Josey, Director, Certification, The Open Group, and Chair of the POSIX 1003.1 Working Group
The same trusted content from the Second Edition, now in paperback!
For over a decade, serious C programmers have relied on one book for practical, in-depth knowledge of the programming interfaces that drive the UNIX and Linux kernels: W. Richard Stevens' Advanced Programming in the UNIX® Environment. Now, Stevens' colleague Stephen Rago has thoroughly updated this classic to reflect the latest technical advances and add support for today's leading UNIX and Linux platforms.
Rago carefully retains the spirit and approach that made this book a classic. Building on Stevens' work, he begins with basic topics such as files, directories, and processes, carefully laying the groundwork for understanding more advanced techniques, such as signal handling and terminal I/O.
Substantial new material includes chapters on threads and multithreaded programming, using the socket interface to drive interprocess communication (IPC), and extensive coverage of the interfaces added to the latest version of the POSIX.1 standard. Nearly all examples have been tested on four of today's most widely used UNIX/Linux platforms: FreeBSD 5.2.1; the Linux 2.4.22 kernel; Solaris 9; and Darwin 7.4.0, the FreeBSD/Mach hybrid underlying Apple's Mac OS X 10.3.
As in the first edition, you'll learn through example, including more than 10,000lines of downloadable, ANSI C source code. More than 400 system calls and functions are demonstrated with concise, complete programs that clearly illustrate their usage, arguments, and return values. To tie together what you've learned, the book presents several chapter-length case studies, each fully updated for contemporary environments.
Advanced Programming in the UNIX® Environment has helped a generation of programmers write code with exceptional power, performance, and reliability. Now updated for today's UNIX/Linux systems, this second edition will be even more indispensable.
Table of Contents:Foreword.
Preface to the First Edition.
1. UNIX System Overview.
Files and Directories.
Input and Output.
Programs and Processes.
System Calls and Library Functions.
2. UNIX Standardization and Implementations.
UNIX System Implementations.
Relationship of Standards and Implementations.
Feature Test Macros.
Primitive System Data Types.
Conflicts Between Standards.
3. File I/O.
dup and dup2 Functions.
sync, fsync, and fdatasync Functions.
4. Files and Directories.
stat, fstat, and lstat Functions.
Set-User-ID and Set-Group-ID.
File Access Per missions.
Ownership of New Files and Directories.
chown, fchown, and lchown Functions.
link, unlink, remove, and rename Functions.
symlinkand readlink Functions.
mkdirand rmdir Functions.
Reading Director ies.
chdir, fchdir, and getcwd Functions.
Device Special Files.
Summary of File Access Per mission Bits.
5. Standard I/O Library.
Streams and FILE Objects.
Standard Input, Standard Output, and Standard Error.
Opening a Stream.
Reading and Writing a Stream.
Standard I/O Efficiency.
Positioning a Stream.
Alternatives to Standard I/O.
6. System Data Files and Information.
Supplementary Group Ids.
Other Data Files.
Time and Date Routines.
7. Process Environment.
Memory Layout of a C Program.
setjmp and longjmp Functions.
getrlimit and setrlimit Functions.
8. Process Control.
waitand waitpid Functions.
Changing User IDs and Group IDs.
9. Process Relationships.
tcgetpgrp, tcsetpgrp, and tcgetsid Functions.
Shell Execution of Programs.
Orphaned Process Groups.
Interrupted System Calls.
Reliable-Signal Terminology and Semantics.
killand raise Functions.
alarmand pause Functions.
sigsetjmp and siglongjmp Functions.
12. Thread Control.
Threads and Signals.
Threads and fork.
Threads and I/O.
13. Daemon Processes.
14. Advanced I/O.
2 poll Function.
readv and writev Functions.
readn and written Functions.
15. Interprocess Communication.
popen and pclose Functions.
16. Network IPC: Sockets.
Nonblocking and Asynchronous I/O.
17 Advanced IPC.
Passing File Descriptors.
An Open Server, Version 1.
An Open Server, Version 2.
18. Terminal I/O.
Special Input Characters.
Getting and Setting Terminal Attributes.
Terminal Option Flags.
Baud Rate Functions.
Line Control Functions.
Terminal Window Size.
termcap, terminfo, and curses.
19. Pseudo Terminals.
Opening Pseudo-Terminal Devices.
Using the pty Program.
20. A Database Library.
Centralized or Decentralized?
Building the Library.
21. Communicating with a Network Printer.
The Inter net Printing Protocol.
The Hypertext Transfer Protocol.
Appendix A. Function Prototypes.
Appendix B. Miscellaneous Source Code.
Our Header File.
Standard Error Routines.
Appendix C. Solutions to Selected Exercises.
New interesting textbook: Life After Trauma or Erotic Massage
Storage Area Networks for Dummies
Author: Alex Nikitin
In case you weren’t sure, a storage area network, or SAN, is a collection of computers and storage devices connected over a high-speed optical network and dedicated to the task of storing and protecting data. SANs solve many of the data storage and management problems that have long bedeviled enterprise networks, and they save companies who use them a bundle. Which is why SAN administration is one of the highest-paid jobs in IT today. Add storage area networking to your resume and your phone will ring off the hook with calls by head-hunters promising of six-figure salaries.
Bored with in your current IT job and looking for a change of pace—and bigger bucks? Then Storage Area Networks For Dummies is for you. Have you been tasked with designing, implementing, or troubleshooting your company’s SAN and need to play catch-up in a hurry? Look no further. In no time, this book gets you on track with the know-how and confidence you need to:
- Choose the right hardware for the job
- Design state-of-the-art SANs
- Implement a SAN and get it running like a well-oiled machine
- Configure, manage and troubleshoot SANs
- Seamlessly integrate two or more SANs
- Become a SAN sage and give your career a major boost
From the ABCs of SANs to making the most of advanced SAN features, Storage Area Networks For Dummies covers all the bases in plain English and with loads of real-life examples. Key topics covered include:
- What are SANs, how they work, and who needs them
- SAN protocols, components, and common problems
- Designing and building a SAN
- SANs and disaster recovery
- Networking SANs
- Understanding, choosing, and using SAN backup solutions
- Making the most of Point-in-Time technology
- Outsourcing SANs
- Managing and troubleshooting SANs