This title is out of print.
W. Richard Stevens
Stephen A. Rago
Advanced Programming in the Unix Environment is a must-have volume
describing and illustrating the programming interface to the Unix system.
Author builds on the basic information presented in the first 15 chapters to
provide chapter-length examples illustrating among other things how to
develop a database library as well as a postscript print driver.
The book progresses from basic topics such as file systems, directories, and
signals to more advanced topics including interprocess communications,
threads and multi-threaded programming. Extensive code examples in C
combined with a clear writing style make the more difficult aspects of Unix
programming easy to master. This invaluable tutorial and reference teaches
even the more experienced programmer how to get the most of their Unix
system whether its Linux, Solaris, Free BSD or Mac OS X.
This product is part of the following series. Click on a series title to see the full list of products in the series.
A major revision of the definitive guide to Unix system programming with sales exceeding 160,000 units!
° Describes and illustrates more than 200 system calls - the interface that programmers must master in order to access all major Unix internal resources.
° New Edition covers the final POSIX.1 standard as well as threads and multi-threaded programming.
° Includes all new examples, over 10,000 lines of code, running on Linux, Solaris, Free BSD and MAC OS X.
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.
chmodand fchmod Functions.
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.
Pearson offers affordable and accessible purchase options to meet the needs of your students. Connect with us to learn more.
K12 Educators: Contact your Savvas Learning Company Account General Manager for purchase options. Instant Access ISBNs are for individuals purchasing with credit cards or PayPal.
Savvas Learning Company is a trademark of Savvas Learning Company LLC.
We are deeply saddened to learn of the death of noted author W. Richard Stevens. His passing is obviously a tremendous loss for the technical community, but it is a personal one for us as well. Rich was both a gifted colleague and a valued friend who will be greatly missed. We extend our sympathies to his family.
Obituary from the Arizona Daily Star:
STEVENS, W. Richard, noted author of computer books died on September 1. He is best known for his "UNIX Network Programming" series (1990, 1998, 1999), "Advanced Programming in the UNIX Environment" (1992), and "TCP/IP Illustrated" series (1994, 1995, 1996). Richard was born in 1951 in Luanshya, Northern Rhodesia (now Zambia), where his father worked for the copper industry. The family moved to Salt Lake City, Hurley, New Mexico, Washington, DC and Phalaborwa, South Africa. Richard attended Fishburne Military School in Waynesboro, Virginia. He received a B.SC. in Aerospace Engineering from the University of Michigan in 1973, and an M.S. (1978) and Ph.D. (1982) in Systems Engineering from the University of Arizona. He moved to Tucson in 1975 and from then until 1982 he was employed at Kitt Peak National Observatory as a computer programmer. From 1982 until 1990 he was Vice President of Computing Services at Health Systems International in New Haven, CT, moving back to Tucson in 1990. Here he pursued his career as an author and consultant. He was also an avid pilot and a part-time flight instructor during the 1970's.
He is survived by his loving wife of 20 years, Sally Hodges Stevens; three wonderful children, Bill, Ellen and David; sister, Claire Stevens of Las Vegas, NV; brother, Bob and wife Linda Stevens of Dallas, TX; nieces, Laura, Sarah, Collette, Christy; and nephew, Brad. He is predeceased by his parents, Royale J. Stevens (1915-1984); and Helen Patterson Stevens (1916-1997). Helen lived in Tucson from 1991-1997, and Royale lived here in the early 1930's attending Tucson High School while his father was treated for TB at the Desert Sanitorium (now TMC). The family asks that in lieu of flowers, donations be made in Richard's name to Habitat for Humanity, 2950 E. 22nd Street, Tucson, AZ 85713. A memorial service for Richard will be held at St. Phillip's in the Hills Episcopal Church on Tuesday, September 7th at 12:00 noon. Following the service there will be a reception in the Murphy Gallery of the Church. Please wear colorful clothing to the service; Richard loved colors.
W. Richard Stevens was an acknowledged UNIX and networking expert and the highly-respected author of several books. He was also a sought-after instructor and consultant.
Stephen A. Rago, one of the Bell Laboratories developers who built UNIX System V, Release 4, currently works as a manger at EMC, specializing in file servers and file systems.
We're sorry! We don't recognize your username or password. Please try again.
The work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning.
You have successfully signed out and will be required to sign back in should you need to download more resources.