×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Advanced Programming in the UNIX Env, 2nd Ed.

timothy posted more than 8 years ago | from the environmentalism dept.

128

Eater writes "W. Richard Stevens wrote Advanced Programming in the UNIX Environment, which was published in 1993 by Addison-Wesley. It quickly became the cornerstone of many bookshelves. The original edition has been revised by Stephen A. Rago to more accurately reflect the current landscape of UNIX and UNIX-like systems. APUE is targeted at the experienced C programmer with a working knowledge of UNIX. It includes chapter long examples of real-world applications, and--as with other works by W. Richard Stevens -- somehow manages to serve simultaneously as an enlightening tutorial and a valuable reference book." Read on for the rest of Eater's review of the book's recent second edition.

Few technical authors have had such a great impact on the geek community as Rich Stevens, and because of this, any review of his books should include a few words about the man himself.

Stevens' work typically tops any "recommended reading" list when it comes to TCP/IP networking or UNIX programming. Stevens passed away on September 1st, 1999. In addition to APUE, he authored UNIX Network Programming (Volume 1: APIs and Volume 2: IPC) and TCP/IP Illustrated (Volume 1: Protocols, Volume 2: Implementation, and Volume 3: TCP/T, HTTP, NNTP, Unix Domain Protocols.) Stevens was posthumously awarded the USENIX Lifetime Achievement Award for his extraordinarily lucid teaching and generous spirit within the community, which was accepted on his behalf by his surviving wife and children. (Slashdot coverage of his unfortunate death is available.)

Stephen A. Rago, who has taken on the daunting task of revising Stevens' APUE, worked at Bell Laboratories as a UNIX SVR4 developer. His first contact with Rich Stevens was an e-mail regarding a typographical error in Stevens' first book, UNIX Network Programming. Stevens later acted as a technical reviewer for Rago's UNIX System V Network Programming. Rago reciprocated as a technical reviewer for the first edition of APUE, and has done a fine job of revising that same text for the new second edition.

After more than a decade of changes in UNIX and UNIX-like operating systems, the original edition of APUE holds up well. Rago's revision reflects the following:

  • System V variants are being replaced by Linux, Solaris being the last of these with any reasonable market share.
  • 4.4BSD was the last UNIX release officially maintained by Berkeley's CSRG, with subsequent derivatives being maintained by volunteers.
  • The popularity of Linux and inexpensive x86 hardware has introduced a notable shift in development.
  • Apple Computer has abandoned its previous operating system for one based on Mach and FreeBSD.
  • The original book was based on the 1990 version of the POSIX.1 standard. The new edition has incorporated changes from the 2001 version.
  • Chapters on threads and thread control have been added.
  • Some material has been omitted to reflect changes in common hardware. For example, the "Modem Dialer" example from the first edition has been removed, and "Communicating with a PostScript Printer" (which focused on serial and parallel communication) has been replaced with "Communicating with a Network Printer".

The following platforms were used in Rago's edition:

  • FreeBSD 5.2.1 on Intel Pentium
  • Linux 2.4.22 (Mandrake 9.2) on Intel Pentium
  • Solaris 9 on 64-bit UltraSPARC IIi
  • Darwin 7.4.0 (Mac OS X, version 10.3) on PowerPC

A comparison of the tables of contents between the first and second editions indicates only minor organizational changes. When delving into the text, it's apparent that Rago has done a painstaking job of reworking the text to reflect the changes over the past 13 years.

Notably, Rago has included a few new helpful tables in the chapter on UNIX standardization. These tables compare the differences among the four platforms he used in writing this edition, making this text rather valuable for those trying to support multiple offerings.

An entirely new part of this edition is two chapters dealing with POSIX threads. Rago presents this material first with an introductory chapter on threads, POSIX.1 primitives available for creating and destroying threads, and a discussion of the fundamental issues when dealing with synchronization between threads. The follow-up chapter is on thread control, dealing with the specifics of synchronization, reentrancy, and thread interaction with process-oriented system calls.

Stevens believed that the best way to learn code was to read code, and his books reflect that philosophy well. The original edition contained a chapter titled "Communicating with a PostScript Printer" that included a complete program to communicate over a RS-232 serial connection to an attached printer. Most PostScript printers today are accessed via a network interface, and Rago has managed to rewrite the material reflecting this while still maintaining the original intent of the chapter. The first edition's chapter on modem communication has been omitted from the new edition, but is still available via the book's website.

This book is no superficial rewrite of the first edition. From cover to cover, it's apparent that Rago has carefully interpreted the original text and rewritten it to accurately reflect the changes of the past 13 years; he has also managed to preserve to original lucid and efficient presentation style of Stevens' classic.

The book's official website is available here, including all source-code examples and errata.


You can purchase Advanced Programming in the UNIX Environment, 2nd Ed. from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

128 comments

Today's featured article (1)

montreal!hahahahah (880120) | more than 8 years ago | (#13046810)

The Civil Air Patrol is the official civilian auxiliary of the United States Air Force. It was created just days before the Attack on Pearl Harbor in 1941, and is credited with sinking at least two German U-boats during the War. It was seen as a way to use America's civil aviation resources to aid the war effort, rather than grounding them, as was the case in the United Kingdom. Today, the Civil Air Patrol is a volunteer organization dedicated to education and national service, including people from all backgrounds and all walks of life. It performs three key missions: Emergency services (including search and rescue), aerospace education for youth and the general public, and cadet programs. The September 11, 2001 attacks demonstrated the importance of the Civil Air Patrol, as it was this organization's aircraft that flew blood to victims of the attack as well as providing the first aerial pictures of the World Trade Center site.

How did he die? (-1, Offtopic)

Breakfast Pants (323698) | more than 8 years ago | (#13046821)

I couldn't tell from the linked Slashdot article.

Re:How did he die? (0)

Anonymous Coward | more than 8 years ago | (#13046876)

I heard it was a hang gliding accident.

Re:How did he die? (0)

Anonymous Coward | more than 8 years ago | (#13046898)

Assassination by Microsoft, I assure you.

Re:How did he die? (0)

Anonymous Coward | more than 8 years ago | (#13046992)

He drowned.

Cornerstone (-1, Troll)

smitty_one_each (243267) | more than 8 years ago | (#13046835)

I do not think it means what you think it means.

Re:Cornerstone (0)

Anonymous Coward | more than 8 years ago | (#13046894)

big friggin deal you pedantic butthead, we know what he means.

Re:Cornerstone (5, Funny)

Chris Burke (6130) | more than 8 years ago | (#13047026)

Sure it does. At over 900 pages, the hardcover version of this book would serve quite well as a cornerstone for a bookshelf. It works almost as well as cinder blocks or milk crates!

Re:Cornerstone (1)

rsd (194962) | more than 8 years ago | (#13048493)

Correction.

It is not "this book would serve".

This book (along with UNP I and II on the other side) is the cornerstones in my bookshelf.

old skool linux (0, Redundant)

brucem4179 (898273) | more than 8 years ago | (#13046854)

  • FreeBSD 5.2.1 on Intel Pentium
  • Linux 2.4.22 (Mandrake 9.2) on Intel Pentium
  • Solaris 9 on 64-bit UltraSPARC IIi
  • Darwin 7.4.0 (Mac OS X, version 10.3) on PowerPC
Gee a bit old on the old linux front, no? Are a lot of people still using the 2.4 series?

Re:old skool linux (0)

Anonymous Coward | more than 8 years ago | (#13046962)

Yes.

Re:old skool linux (2, Insightful)

radarsat1 (786772) | more than 8 years ago | (#13046982)

haven't read the book or anything, but i get the impression that it's mostly about user-space system-level programs. A lot of this is not really affected by the exact kernel version. Although I guess a lot of 2.6-specific stuff like udev and whatnot might be affected.

In a way though, the distribution and the way the filesystem is organized is more important than the particular kernel.

Re:old skool linux (1)

OwnedByTwoCats (124103) | more than 8 years ago | (#13047424)

I wrote a lot of code using Stevens' Unix Network Programming. Highly, highly, highly recommended. Theory and practice, in one volume. Understanding how the C API works helps one understand network programming in every other language...

I have access to the first edition of APUE from the library, so I won't be running out to buy a new copy.

Re:old skool linux (2, Insightful)

pianoman113 (204449) | more than 8 years ago | (#13047065)

While I have no hard numbers to back this statement up, I would venture to guess that there are many people out there still using the 2.4 series kernel, just as there were many using 2.2 at this point in the 2.4 release series. In fact, there are probably a handful of people still using 2.2 and a very small number still on 2.0.

Not everyone can afford to be on the cutting edge.

Re:old skool linux (0)

Anonymous Coward | more than 8 years ago | (#13047108)

uhh... yes... anyone who is running an Enterprise Linux distro that's more than a few months old.

Re:old skool linux (1)

wesleyt (745624) | more than 8 years ago | (#13047540)

2.4.22 isn't really old, not in the business world. Red Hat will be maintaining the 2.4 kernel in Red Hat Enterprise Linux 3 (RHEL 3) for a number of years to come.

Of the twenty-odd Linux servers I maintain here at work, most are running Red Hat 7.x, with the Opterons running RHEL 3. All are 2.4-based.

I'm upgrading one RHEL 3 server to RHEL 4 (with a 2.6 kernel) tomorrow purely to remain under a vendor's maintenance argeement. I'm not really happy about it.

My motto for systems administration: if it ain't broke, don't fix it. If it breaks and you can patch it without upgrading the OS, do that. Most RH8 and RH9 packages recompile fine in RH7 with a bit of tweaking. If they don't, then the source tarballs usually do.

Typically, I'll replace the OS when I replace the hardware.

Re:old skool linux (4, Insightful)

bheading (467684) | more than 8 years ago | (#13047710)

Are a lot of people still using the 2.4 series?

Yes. It's a known quantity and is extremely stable. 2.6 may be the latest and greatest, but it's still coming up with reports of some nasty performance problems under certain kinds of load.

Enterprise shops won't dare take risks with new OS releases. They'll sit until they have to move, either through obsolescence or (less likely) due to a new must-have feature.

Re:old skool linux (0)

Anonymous Coward | more than 8 years ago | (#13048341)

Really?

Under what conditions does 2.6 perform more than 1 or 2% worse than 2.4?

Re:old skool linux (0)

Anonymous Coward | more than 8 years ago | (#13048172)

I'm still on 1.0 you insensitive clod!!

GNAA releases OSX86 (-1, Troll)

Anonymous Coward | more than 8 years ago | (#13046864)

GNAA Announces Immediate Release of OSX_x86_YHBT
GNAA Announces Immediate Release of OSX_x86_YHBT

Ich Bindawalross (London) - GNAA (NYSE: GNAA [www.gnaa.us]) President timecop released a statement today regarding the immediate Internet release of MacOS X for the x86 architecture, available on many BitTorrent networks. After making the statement, timecop yielded the stage to a second speaker at the press conference, Apple Computer co-Founder and CEO, Steve "Rim" Jobs, now fully recovered from his recent gender reassignment surgery to field questions from attending press members.

"We here at Apple Computerth [sic] have decided on a slightly different path for the upcoming version of the MacOS X," Jobs states before bursting out into high pitched giggles. "We have replaced our overpriced and bloated software with an efficient and easy-to-use interface. I would like to take this opportunity to announce a merger larger than a Zimbabwe nigger cock: GNAA and Apple Computer."

Returning to the podium, timecop began speaking again, while Steve Jobs submitted to orally pleasuring his ten inch nigger cock. "Dedicated faggots have been loyally purchasing the homosexual software and hardware abomination that is Macintosh computers. Apple has been striving to provide software customers with the most flambouyantly homosexual combination available. However, in recent days, this hasn't been enough.

"There has been increasing pressure from the disgustingly obese Lunix nerds and the socially well-adjusted and popular Windows users to convert, as well as pressure from OS X emulators to provide consumers with increasingly gay products. Apple Computer has decided to merge with GNAA in order to broaden the appeal and better serve the interests of all those who buy Macintosh products. Furthermore, we will adopt Apple's "Step 2 ???? PROFIT!" marketing model. This will also stop Apple from going out of business, which they probably would have otherwise."

At this point, timecop paused and deposited a quart of Gaynigger seed into Steve Jobs' mouth.

"GNAApple is committed to our new OS X86. Rather than give the user the difficulty of finding pornography themselves, we provide them with the classic hello.jpg, redundantly archived and brand labeled throughout the 950 MB DVD image, as well as a bundled copy of GPA (Gay Porn Avalanche). Now, greater efficiency in masturbatory pursuits can be provided to all."

"As Slashdot users, many of you might have been exposed to the pirated release, and information pertaining to it. We would like to thank Rob "CmdrCocko" Malda for running the first article, leading to the release of information about our upcoming merger. We would also like to extend our gratitude to thepiratebay.org and XiSO for helping us spread the release over the 'underground scene.' We thank you, the IRC channels who put it on their hacked .edu xdcc bots and fserves who hosted it on your dialup connections.

Steve Jobs, recovering from the large dosage of AIDS from the variety of syphilitic, festering sores of GNAA members, rose to his feet at this point during the press conference. "Our previous versions of OS X were released prematurely, and as a result the operating system was unstable and fragile. Our team of software engineers have also decided to abandon the weak and inefficient UNIX backside in favor of a more efficient and robust alternative: WinNT. The pirated version of our new operating system has had record acclaim from users of the Jewish-based internet news organization known as "Slashdot [kuro5hin.org]".

"Those doubting the superiority of our new release need only read user testimonials."

"The Torrent going around as: Mac OS X Tiger X86 READNFO-XISO It's a complete fake. When the image is booted it shows a picture of a guy showing off his Bu** H**e." - Anon Coward

"if you unrar, burn, and boot like the .nfo file says, it just boots it to a very lovely goatse image. no joke, wasted two hours of my life and made a coaster out of some DVD+R media. HILARIOUS!" - BobVila

"Best. Goatse.cx. Trap. Ever." - saddino

"Aw crap, I thought you guys who said it was fake were just being fags. Opened up the first rar in my hex editor n after scrolling ,I too saw the "GNAAGNAAGNAA" *cries* I want Mac OS for my Pee-Ceeeeeeee." - Mark

"im crying GNAAAAAAAAAAAAAAAAAAAAAAAA" - hootie

"GNAA > me. Fristage Postage is theirs" - Pat Gunn


About Apple:

Apple Computer is the creator of the Macintosh, popularly known as the "gay computer". 87% of GNAA members are Mac users. Founded in 1974 by Steve Jobs and Steve Wozniak, Apple was nearly out of business in the mid 90's, when Jobs was rehired. He then started the now infamous iGay marketing scheme which involved both the Step 2 ???? Profit model, and a 100% effort towards marketing towards homosexuals.


About GNAA:
GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the first organization which gathers GAY NIGGERS from all over America and abroad for one common goal - being GAY NIGGERS.

Are you GAY [klerck.org]?
Are you a NIGGER [mugshots.org]?
Are you a GAY NIGGER [gay-sex-access.com]?

If you answered "Yes" to all of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!
Join GNAA (GAY NIGGER ASSOCIATION OF AMERICA) today, and enjoy all the benefits of being a full-time GNAA member.
GNAA (GAY NIGGER ASSOCIATION OF AMERICA) is the fastest-growing GAY NIGGER community with THOUSANDS of members all over United States of America and the World! You, too, can be a part of GNAA if you join today!

Why not? It's quick and easy - only 3 simple steps!
  • First, you have to obtain a copy of GAYNIGGERS FROM OUTER SPACE THE MOVIE [imdb.com] and watch it. You can download the movie [idge.net] (~130mb) using BitTorrent.
  • Second, you need to succeed in posting a GNAA First Post [wikipedia.org] on slashdot.org [slashdot.org], a popular "news for trolls" website.
  • Third, you need to join the official GNAA irc channel #GNAA on irc.gnaa.us, and apply for membership.
Talk to one of the ops or any of the other members in the channel to sign up today! Upon submitting your application, you will be required to submit links to your successful First Post, and you will be tested on your knowledge of GAYNIGGERS FROM OUTER SPACE.

If you are having trouble locating #GNAA, the official GAY NIGGER ASSOCIATION OF AMERICA irc channel, you might be on a wrong irc network. The correct network is NiggerNET, and you can connect to irc.gnaa.us as our official server. Follow this link [irc] if you are using an irc client such as mIRC.

If you have mod points and would like to support GNAA, please moderate this post up.

.________________________________________________.
| ______________________________________._a,____ | Press contact:
| _______a_._______a_______aj#0s_____aWY!400.___ | Gary Niger
| __ad#7!!*P____a.d#0a____#!-_#0i___.#!__W#0#___ | gary_niger@gnaa.us [mailto]
| _j#'_.00#,___4#dP_"#,__j#,__0#Wi___*00P!_"#L,_ | GNAA Corporate Headquarters
| _"#ga#9!01___"#01__40,_"4Lj#!_4#g_________"01_ | 143 Rolloffle Avenue
| ________"#,___*@`__-N#____`___-!^_____________ | Tarzana, California 91356
| _________#1__________?________________________ |
| _________j1___________________________________ | All other inquiries:
| ____a,___jk_GAY_NIGGER_ASSOCIATION_OF_AMERICA_ | Enid Al-Punjabi
| ____!4yaa#l___________________________________ | enid_al_punjabi@gnaa.us [mailto]
| ______-"!^____________________________________ | GNAA World Headquarters
` _______________________________________________' 160-0023 Japan Tokyo-to Shinjuku-ku Nishi-Shinjuku 3-20-2

Copyright (c) 2003-2005 Gay Nigger Association of America [www.gnaa.us]

MOD PARENT +, ACCURATE MAC USER DESCRIPTION (0)

Anonymous Coward | more than 8 years ago | (#13046930)

n/t

What I always liked about Stevens (5, Insightful)

cerberusss (660701) | more than 8 years ago | (#13046878)

What I always liked about Stevens, is that he delivered print-ready copy to his publisher. This guy did everything himself. Layout, typesetting, graphics, indexing, the whole works. Where can you find people like that nowadays who take so much pride in their product that they hand-hold it from draft to customer?

Re:What I always liked about Stevens (4, Insightful)

HyperChicken (794660) | more than 8 years ago | (#13046949)

Donald Knuth? Created his own typesetting language. Can't get much more "do it yourself" than that.

Re:What I always liked about Stevens (4, Funny)

Timesprout (579035) | more than 8 years ago | (#13047064)

Big deal, I have several trees growing in my garden from seed, which I intend to gnaw down with my own teeth before turning the wood into pulp for paper on which I will hand write every copy of my forthcoming autobiography 'Sprout from the veggie patch'. This sure to be a classic will of course be hand delivered by me and I will be available 24/7 to read it aloud for the visually impaired, or anyone purchasing the audio version.

Re:What I always liked about Stevens (4, Funny)

tomhudson (43916) | more than 8 years ago | (#13047243)

I have several trees growing in my garden from seed, which I intend to gnaw down with my own teeth
Sorry, but I represent the Beavers of North America, and you are being served with a Cease and Desist for copying our prior art and patents.

The Department of Homeland Security has also been informed that you are in possession of terrorist devices, namely augmented dentition, which you could only have obtained if you were gene-spliced.

As someone who has defied and defiled creation through this gene-splicing, your name and location has also been handed over to the new ultra-secret, government-funded Fundamentalists for Human Purity, who will quickly show you the error of your ways during your upcoming "vacation".

Also, after running your words through Echelon, we have determined that "trees ... gnaw down" is code for "Bush ... knock off", or a threat to assassinate the president. Your room at Gitmo is being prepared even as you read this.

Re:What I always liked about Stevens (3, Funny)

Timesprout (579035) | more than 8 years ago | (#13047342)

Damn, and all this time I though the Beavers of North America was the porno actress union.

Re:What I always liked about Stevens (0)

Anonymous Coward | more than 8 years ago | (#13049259)

Just the Canadian chapter

Re:What I always liked about Stevens (2, Funny)

Anonymous Coward | more than 8 years ago | (#13048030)

"Big deal, I have several trees growing in my garden from seed, which I intend to gnaw down with my own teeth"

Wow, you must be one real eager beaver.

Thank you. I will be here all week.

Re:What I always liked about Stevens (1)

bluGill (862) | more than 8 years ago | (#13049187)

Yeah, well I have an iron mine in my backyard. I'm refining the ore into steal, and then making a saw from that to cut down my trees, also growing in the backyard.

Now if I could just write a book worthy of the effort.

Re:What I always liked about Stevens (1)

keesh (202812) | more than 8 years ago | (#13047221)

Where can you find people nowadays that have time to learn how to do proper layout, typesetting, graphics and indexing as well as knowing all that's necessary to write a book? Division of labour is a good thing.

Re:What I always liked about Stevens (5, Interesting)

BYTEBuG (630830) | more than 8 years ago | (#13047269)

8 years ago I was developing a UDP-based distributed messaging system for our local intranet, and got to a point where I couldn't get things working right. I had been using Stevens' books as my references, and I noticed his email address in the preface.

"What the hey," I thought. "I'll email him." So I did, and then went to lunch.

Imagine my surprise upon my return when I saw 2 return emails waiting! He explained in great detail what I was doing wrong conceptually, and gave exacting instructions on how to make a certain part work. In the second email, he said it didn't sit well with him to leave me with an "unoptimal solution" (his words), so on his own time he came up with an even better paradigm, and sent actual tested code to implement it!

What can I say? His books will always grace my shelf.

Re:What I always liked about Stevens (4, Interesting)

Anonymous Coward | more than 8 years ago | (#13048006)

Would you care to share the tips he provided?

Re:What I always liked about Stevens (1)

jnf (846084) | more than 8 years ago | (#13048944)

if you hadn't already been modded up to the max, i would have spent my last moderation point modding you up. a great memory for a great man ;]

Re:What I always liked about Stevens (1)

autosentry (595252) | more than 8 years ago | (#13047339)

As a production manager, I would dread having to troubleshoot something like that. On the other hand, I wouldn't mind it if the author had to troubleshoot it himself . . . I look at open-source typesetting programs a lot, and while I like the idea, I'm bewildered by how I could keep a book on schedule the way I can with Quark or InDesign in a coding language. The Troff website is a little obtuse at the moment, but I wouldn't mind learning more.

Re:What I always liked about Stevens (0)

Anonymous Coward | more than 8 years ago | (#13047769)

With the like of Dr. Knuth I think he would be managing you.

Some people are good in a particular area: Einstein. Some people are just good: Knuth and Feynman.

Re:What I always liked about Stevens (4, Insightful)

Tom Christiansen (54829) | more than 8 years ago | (#13048496)

What I always liked about Stevens, is that he delivered print-ready copy to his publisher. This guy did everything himself. Layout, typesetting, graphics, indexing, the whole works. Where can you find people like that nowadays who take so much pride in their product that they hand-hold it from draft to customer?
Amongst other things, Richard wrote quite the elaborate but easy-to-use troff macro set to aid in the production of those books.

You're right: that level of pride in workmanship is nearly (but not quite) unheard of in modern technical publishing. But can a publisher ever really measure up to the exacting standards of the most extreme of precise-minded (aka anal) authors? Probably not. That sort of author is apt to be seen as more than half-mad and too much of a hassle for the publisher to try to work with. "After all," says the publisher, "it's just a book." "Sure, but it's my book!" carps back the meticulous author.

You asked where one can find such people. The best living example of fastidious attention to detail that springs to mind is Jeffrey Friedl, as seen in his 500-page arcane tome, Mastering Regular Expressions [oreilly.com], now it its second edition. If I recall correctly, Jeffrey did the typesetting, indexing, etc, which means that he was his own production team. This is nearly universally deemed far more trouble than it's worth, but at least you'll have no one to complain about if, for example, the index doesn't measure up--which it seldom if ever does.

Check out Jeffrey's index [oreilly.com] for MRE (it's in PDF format). Give it a glance. Notice the richness, the usefulness. Notice the multiple levels of headings, rather than just two. Notice the careful treatment of fonts and of the ordering of analphabetic symbols. Many another gem is hidden within that index, which you'll notice if you skim it a bit.

This sort of quality you will never, ever get from some freelance, paid-by-the-hour indexer who doesn't know the problem space, who won't have their name on that book's cover. It does make a difference.

Whoops. We now return you from this unintentional pæan to MRE's production quality.

On Richard Stevens, he was a marvelous and wonderful human being, and he is missed, not just by me, but by many.

--tom

Re:What I always liked about Stevens (0, Troll)

jericho4.0 (565125) | more than 8 years ago | (#13048701)

"the ordering of analphabetic symbols"

Did you go to a English public school?

what's new? (1)

slashdotnickname (882178) | more than 8 years ago | (#13046880)

I don't mean to sound like a troll, but I already have a few similar books in my dusty collection... so what's new in this one that can't be found in the other books and/or web sites out there? anything exciting enough for me to put on pants and drive down to my Books-a-Million?

Re:what's new? (2, Insightful)

Alphabet Pal (895900) | more than 8 years ago | (#13047386)

You say "similar" books... do you mean that you already have the first edition, or that you don't have any of Steven's other books? (If you did have any of his books, but not the first edition of this one, you already know what "can't be found in the other books").

I'll assume you mean you haven't yet read any of his books - beleive me, they're worth it. When I first took an interest in TCP/IP, I passed over his "TCP/IP Illustrated" series for a lot of reasons - they were expensive, there were THREE of them (!), they were out-of-date, they weren't specific to my target environment, etc. I bought some of the other, less expensive alternatives, never learned much that I couldn't learn from reading RFC's, and was finally loaned a copy of "TCP/IP Illustrated, Volume 1". I was blown away by the quality of the book, and the quality of the writing. I've never read such a well-written technical book in my life, and I suspect I never will again. Nobody can clarify like Stevens. He goes through the details (all the details), but still keeps the book interesting.

I have to clear book purchases with my wife these days (sigh...) but this is one of the books on my wish list. I'll admit I've never read "Advanced Programming in the Unix Environment", but I guarantee that if it was written by W. Richard Stevens, it makes all other books written on the subject useless.

Now, on the other hand, I have to take this reviewers word that this new guy can write as clearly and as interestingly as Stevens, and so will you.

Ah, yes... Cornerstone Books (4, Funny)

xactuary (746078) | more than 8 years ago | (#13046882)

It quickly became the cornerstone of many bookshelves.

Um, those books never get read - used as they are in making space for shelving to hold the other books!

Re:Ah, yes... Cornerstone Books (1)

tomhudson (43916) | more than 8 years ago | (#13047146)

Advanced Programming in the UNIX Env, 2nd Ed.
Bah! Whatever happened to RTFManPages.
Um, those books never get read - used as they are in making space for shelving to hold the other books!
Sure they do - how else are you going to get the "real deal", the background, the culture, the arcana, that separates you from the (m)asses? And that also lets you grok the whys of something as opposed to just the hows.

Great justification for sitting on the can for an hour at the office any day.

well (0, Offtopic)

PunkOfLinux (870955) | more than 8 years ago | (#13046907)

apparently, this book, (should i ever come across it)(I have TERRIBLE trouble finding books; when I'm actually looking for them, I can't find them; the MINUTE i stop looking, I find in some weird section of the bookstore) would be a good thing to read if I was planning to get in programming on linux. But, I rather like python [python.org] and am fairly proficient at it. But I might pick this up, just to see if it has any relevant information.

Re:well (3, Insightful)

tuffy (10202) | more than 8 years ago | (#13046973)

But, I rather like python and am fairly proficient at it. But I might pick this up, just to see if it has any relevant information.

I'd highly recommend it, even if you don't do a lot of C programming. For instance, big chunks of Python's os module are thin wrappers around POSIX systems calls. By knowing how those calls work at a low level, you'll be better able to leverage them in your Python code.

I used to work with W. Richard Stevens (-1, Troll)

Anonymous Coward | more than 8 years ago | (#13046912)

He is a really smart and friendly guy. He did have a real nasty habit of picking his butt and eating the feces. This really grossed people out at meetings. Still a great guy to work with.

Love Stevens work, but... (1)

csharp_wannabe (886975) | more than 8 years ago | (#13046924)

I fear that this new edition might not be as good as the original just because its not Stevens. Stevens is one of my Heroes of the Comp Sci world, and I pray that his soul is doing well in heaven. I'll just wait until my other friends tell me that the coast is clear

Re:Love Stevens work, but... (1)

starX (306011) | more than 8 years ago | (#13049528)

Couldn't have put it better my self. I haven't done any system programming in a while, but this book is indespensible for anyone who has a working knowledge of C and is interested in learning some good system programming.

Don't let the name fool you, no previous system programming experience required.

Why include crappy BSD ? (-1, Troll)

Anonymous Coward | more than 8 years ago | (#13046948)

It has 1/100 the market share of SysV or SysV like
Unix'es.

Re:Why include crappy BSD ? (0)

Anonymous Coward | more than 8 years ago | (#13047253)

...as Netcraft confirms.

troff/groff? (3, Interesting)

Amoeba Protozoa (15911) | more than 8 years ago | (#13046988)

I remember reading that all the Stevens books were typeset with troff. I wonder if this new edition has been typset the same way?

-AP

Re:troff/groff? (1)

daeley (126313) | more than 8 years ago | (#13047256)

I wonder if this new edition has been typset the same way?

(pointing) Ha, ha! </nelson> ;)

Nice recap of the Preface and Foreward (0)

Anonymous Coward | more than 8 years ago | (#13046993)

Of course, it's a 900+ page book and it's only been out for a week or two, but the author of the review didn't do anything other than recap the preface and foreward of the book. In many cases, he quoted sections directly from othe book without attribution.

Nice "review"

Another heavy book (1)

objeck (890008) | more than 8 years ago | (#13047023)

Back in the day I did a lot of programming against specific operation system API such as Windows and UNIX and had the classic books for each environment. Now that programming environments such as Java and C# exist most of those book just gathering dust. How the UNIX API changed that much since 1993? I have huge book on Win32, MFC and UNIX programming that today are just take up space.

Re:Another heavy book (1)

morgan_greywolf (835522) | more than 8 years ago | (#13047167)

It's not as if Java and C# are the only languages anyone's developing in anymore.

While many applications can be written for Java and C# or LAMP, or one of many other "platform indepedent" development environments, there are many types of applications that absolutely cannot be because they need access to OS-level or hardware-level APIs.

Re:Another heavy book (1)

superpulpsicle (533373) | more than 8 years ago | (#13047406)

I have no problem buying these books. Except when I know a newer edition is coming out next year, I mind as well wait.

Re:Another heavy book (1)

objeck (890008) | more than 8 years ago | (#13047923)

Another way of looking at this... with so such content available on the Internet for free is there a real value in buying books that document APIs? I've noticed that most of the books that I buy today are about software development methologies i.e. TDD, Agile, re-factoring etc. I tend to go to the Internet for find the answers to implementing detail and view APIs.

Re:Another heavy book (3, Insightful)

Rick Franchuk (1324) | more than 8 years ago | (#13049529)

The reason dead tree still sells is that there is a great deal of convenience to having all the pertinent answers in one spot. Additionally, with Stevens work, the answers are not only pertinent but with analysis that is deep and insightful, with copious examples that are invariably correct, and usually represent the best way (or ways, with analysis as to which form is superior based on what it is you're trying to accomplish) to do the task.

Dry, unadorned documentation about APIs give no suggestions as to best implementation, or often where to look or what to try when things go wrong. Sure, you can look at other coders' code (if you can find something akin to what you're trying to accomplish), but it's obviously a sub-optimal solution.

Online knowledge is great, don't get me wrong... but when you have the masters of the art willing to author a condense tome filled to the brim with best practices accumulated over a lifetime of projects, it's worth shelling out some clams to have that handy. APUE, UNP (1+2) and TCPIP Illustrated (1,2,3) have saved my sanity on many an occasion, and I suspect they'll do so again.

Re:Another heavy book (0)

Anonymous Coward | more than 8 years ago | (#13049719)

So you mean to say you dont do any usefull programing any more? That is you spend all day banging convuluted nonsense into your slow buggy IDE , press the build button and then head home were you consume large quantities of liquor and or drugs in a desperate attempt to escape the fact that all your work will be garbage by next quarter or at the lastest next year ? and that you are now as disposable as your computer and the software you write ?

As someone new to (1)

g0bshiTe (596213) | more than 8 years ago | (#13047024)

programming in the *nix environment, new as in nill, the review neglects to mention how well people with a basic understanding of C with an interest in programming the platform will interpret or even benefit from this book.

Bieng one of these people, would I benefit more from Stevens book than this title?
Or would this one make a better selection?
Should both of them grace my bookshelf?

Re:As someone new to (1)

AuMatar (183847) | more than 8 years ago | (#13048421)

Well, since this is a rewrite with some new additions of the Stevens title, either will work. As for your case, I'd say yes, buy one. The original Stevens was amazing- it explained how to use a Posix OS from the basics of file operations through networking and concurrency. If you haven't ever done systems level programming on Unix, this is THE place to start.

Re:As someone new to (2, Insightful)

Brandybuck (704397) | more than 8 years ago | (#13048431)

If you're going to do systems level programming in Unix, this book is a must! Whether or not you would benefit from it elsewise depends on how much the frameworks you use insulate you from the gory details of libc and system calls.

Table of contents (2, Insightful)

systems (764012) | more than 8 years ago | (#13047052)

The first thing I like to check in a new book is the table of contents, yet the book homepage doesn't seem to have it.
I hate it when they do that, I'll have to look for it in the publisher 's website.

Re:Table of contents (0)

Anonymous Coward | more than 8 years ago | (#13047137)

Copyright
Praise for Advanced Programming in the UNIX&#174; Environment, Second Edition
Praise for the First Edition
Addison-Wesley Professional Computing Series
Foreword
Preface
Introduction
Changes from the First Edition
Acknowledgments
Preface to the First Edition
Introduction
Unix Standards
Organization of the Book
Examples in the Text
Systems Used to Test the Examples
Acknowledgments
Chapter 1. UNIX System Overview
Section 1.1. Introduction
Section 1.2. UNIX Architecture
Section 1.3. Logging In
Section 1.4. Files and Directories
Section 1.5. Input and Output
Section 1.6. Programs and Processes
Section 1.7. Error Handling
Section 1.8. User Identification
Section 1.9. Signals
Section 1.10. Time Values
Section 1.11. System Calls and Library Functions
Section 1.12. Summary
Exercises
Chapter 2. UNIX Standardization and Implementations
Section 2.1. Introduction
Section 2.2. UNIX Standardization
Section 2.3. UNIX System Implementations
Section 2.4. Relationship of Standards and Implementations
Section 2.5. Limits
Section 2.6. Options
Section 2.7. Feature Test Macros
Section 2.8. Primitive System Data Types
Section 2.9. Conflicts Between Standards
Section 2.10. Summary
Exercises
Chapter 3. File I/O
Section 3.1. Introduction
Section 3.2. File Descriptors
Section 3.3. open Function
Section 3.4. creat Function
Section 3.5. close Function
Section 3.6. lseek Function
Section 3.7. read Function
Section 3.8. write Function
Section 3.9. I/O Efficiency
Section 3.10. File Sharing
Section 3.11. Atomic Operations
Section 3.12. dup and dup2 Functions
Section 3.13. sync, fsync, and fdatasync Functions
Section 3.14. fcntl Function
Section 3.15. ioctl Function
Section 3.16. /dev/fd
Section 3.17. Summary
Exercises
Chapter 4. Files and Directories
Section 4.1. Introduction
Section 4.2. stat, fstat, and lstat Functions
Section 4.3. File Types
Section 4.4. Set-User-ID and Set-Group-ID
Section 4.5. File Access Permissions
Section 4.6. Ownership of New Files and Directories
Section 4.7. access Function
Section 4.8. umask Function
Section 4.9. chmod and fchmod Functions
Section 4.10. Sticky Bit
Section 4.11. chown, fchown, and lchown Functions
Section 4.12. File Size
Section 4.13. File Truncation
Section 4.14. File Systems
Section 4.15. link, unlink, remove, and rename Functions
Section 4.16. Symbolic Links
Section 4.17. symlink and readlink Functions
Section 4.18. File Times
Section 4.19. utime Function
Section 4.20. mkdir and rmdir Functions
Section 4.21. Reading Directories
Section 4.22. chdir, fchdir, and getcwd Functions
Section 4.23. Device Special Files
Section 4.24. Summary of File Access Permission Bits
Section 4.25. Summary
Exercises
Chapter 5. Standard I/O Library
Section 5.1. Introduction
Section 5.2. Streams and FILE Objects
Section 5.3. Standard Input, Standard Output, and Standard Error
Section 5.4. Buffering
Section 5.5. Opening a Stream
Section 5.6. Reading and Writing a Stream
Section 5.7. Line-at-a-Time I/O
Section 5.8. Standard I/O Efficiency
Section 5.9. Binary I/O
Section 5.10. Positioning a Stream
Section 5.11. Formatted I/O
Section 5.12. Implementation Details
Section 5.13. Temporary Files
Section 5.14. Alternatives to Standard I/O
Section 5.15. Summary
Exercises
Chapter 6. System Data Files and Information
Section 6.1. Introduction
Section 6.2. Password File
Section 6.3. Shadow Passwords
Section 6.4. Group File
Section 6.5. Supplementary Group IDs
Section 6.6. Implementation Differences
Section 6.7. Other Data Files
Section 6.8. Login Accounting
Section 6.9. System Identification
Section 6.10. Time and Date Routines
Section 6.11. Summary
Exercises
Chapter 7. Process Environment
Section 7.1. Introduction
Section 7.2. main Function
Section 7.3. Process Termination
Section 7.4. Command-Line Arguments
Section 7.5. Environment List
Section 7.6. Memory Layout of a C Program
Section 7.7. Shared Libraries
Section 7.8. Memory Allocation
Section 7.9. Environment Variables
Section 7.10. setjmp and longjmp Functions
Section 7.11. getrlimit and setrlimit Functions
Section 7.12. Summary
Exercises
Chapter 8. Process Control
Section 8.1. Introduction
Section 8.2. Process Identifiers
Section 8.3. fork Function
Section 8.4. vfork Function
Section 8.5. exit Functions
Section 8.6. wait and waitpid Functions
Section 8.7. waitid Function
Section 8.8. wait3 and wait4 Functions
Section 8.9. Race Conditions
Section 8.10. exec Functions
Section 8.11. Changing User IDs and Group IDs
Section 8.12. Interpreter Files
Section 8.13. system Function
Section 8.14. Process Accounting
Section 8.15. User Identification
Section 8.16. Process Times
Section 8.17. Summary
Exercises
Chapter 9. Process Relationships
Section 9.1. Introduction
Section 9.2. Terminal Logins
Section 9.3. Network Logins
Section 9.4. Process Groups
Section 9.5. Sessions
Section 9.6. Controlling Terminal
Section 9.7. tcgetpgrp, tcsetpgrp, and tcgetsid Functions
Section 9.8. Job Control
Section 9.9. Shell Execution of Programs
Section 9.10. Orphaned Process Groups
Section 9.11. FreeBSD Implementation
Section 9.12. Summary
Exercises
Chapter 10. Signals
Section 10.1. Introduction
Section 10.2. Signal Concepts
Section 10.3. signal Function
Section 10.4. Unreliable Signals
Section 10.5. Interrupted System Calls
Section 10.6. Reentrant Functions
Section 10.7. SIGCLD Semantics
Section 10.8. Reliable-Signal Terminology and Semantics
Section 10.9. kill and raise Functions
Section 10.10. alarm and pause Functions
Section 10.11. Signal Sets
Section 10.12. sigprocmask Function
Section 10.13. sigpending Function
Section 10.14. sigaction Function
Section 10.15. sigsetjmp and siglongjmp Functions
Section 10.16. sigsuspend Function
Section 10.17. abort Function
Section 10.18. system Function
Section 10.19. sleep Function
Section 10.20. Job-Control Signals
Section 10.21. Additional Features
Section 10.22. Summary
Exercises
Chapter 11. Threads
Section 11.1. Introduction
Section 11.2. Thread Concepts
Section 11.3. Thread Identification
Section 11.4. Thread Creation
Section 11.5. Thread Termination
Section 11.6. Thread Synchronization
Section 11.7. Summary
Exercises
Chapter 12. Thread Control
Section 12.1. Introduction
Section 12.2. Thread Limits
Section 12.3. Thread Attributes
Section 12.4. Synchronization Attributes
Section 12.5. Reentrancy
Section 12.6. Thread-Specific Data
Section 12.7. Cancel Options
Section 12.8. Threads and Signals
Section 12.9. Threads and fork
Section 12.10. Threads and I/O
Section 12.11. Summary
Exercises
Chapter 13. Daemon Processes
Section 13.1. Introduction
Section 13.2. Daemon Characteristics
Section 13.3. Coding Rules
Section 13.4. Error Logging
Section 13.5. Single-Instance Daemons
Section 13.6. Daemon Conventions
Section 13.7. Client-Server Model
Section 13.8. Summary
Exercises
Chapter 14. Advanced I/O
Section 14.1. Introduction
Section 14.2. Nonblocking I/O
Section 14.3. Record Locking
Section 14.4. STREAMS
Section 14.5. I/O Multiplexing
Section 14.6. Asynchronous I/O
Section 14.7. readv and writev Functions
Section 14.8. readn and writen Functions
Section 14.9. Memory-Mapped I/O
Section 14.10. Summary
Exercises
Chapter 15. Interprocess Communication
Section 15.1. Introduction
Section 15.2. Pipes
Section 15.3. popen and pclose Functions
Section 15.4. Coprocesses
Section 15.5. FIFOs
Section 15.6. XSI IPC
Section 15.7. Message Queues
Section 15.8. Semaphores
Section 15.9. Shared Memory
Section 15.10. Client-Server Properties
Section 15.11. Summary
Exercises
Chapter 16. Network IPC: Sockets
Section 16.1. Introduction
Section 16.2. Socket Descriptors
Section 16.3. Addressing
Section 16.4. Connection Establishment
Section 16.5. Data Transfer
Section 16.6. Socket Options
Section 16.7. Out-of-Band Data
Section 16.8. Nonblocking and Asynchronous I/O
Section 16.9. Summary
Exercises
Chapter 17. Advanced IPC
Section 17.1. Introduction
Section 17.2. STREAMS-Based Pipes
Section 17.3. UNIX Domain Sockets
Section 17.4. Passing File Descriptors
Section 17.5. An Open Server, Version 1
Section 17.6. An Open Server, Version 2
Section 17.7. Summary
Exercises
Chapter 18. Terminal I/O
Section 18.1. Introduction
Section 18.2. Overview
Section 18.3. Special Input Characters
Section 18.4. Getting and Setting Terminal Attributes
Section 18.5. Terminal Option Flags
Section 18.6. stty Command
Section 18.7. Baud Rate Functions
Section 18.8. Line Control Functions
Section 18.9. Terminal Identification
Section 18.10. Canonical Mode
Section 18.11. Noncanonical Mode
Section 18.12. Terminal Window Size
Section 18.13. termcap, terminfo, and curses
Section 18.14. Summary
Exercises
Chapter 19. Pseudo Terminals
Section 19.1. Introduction
Section 19.2. Overview
Section 19.3. Opening Pseudo-Terminal Devices
Section 19.4. pty_fork Function
Section 19.5. pty Program
Section 19.6. Using the pty Program
Section 19.7. Advanced Features
Section 19.8. Summary
Exercises
Chapter 20. A Database Library
Section 20.1. Introduction
Section 20.2. History
Section 20.3. The Library
Section 20.4. Implementation Overview
Section 20.5. Centralized or Decentralized?
Section 20.6. Concurrency
Section 20.7. Building the Library
Section 20.8. Source Code
Section 20.9. Performance
Section 20.10. Summary
Exercises
Chapter 21. Communicating with a Network Printer
Section 21.1. Introduction
Section 21.2. The Internet Printing Protocol
Section 21.3. The Hypertext Transfer Protocol
Section 21.4. Printer Spooling
Section 21.5. Source Code
Section 21.6. Summary
Exercises
Appendix A. Function Prototypes
Appendix B. Miscellaneous Source Code
Section B.1. Our Header File
B.2 Standard Error Routines
Appendix C. Solutions to Selected Exercises
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Chapter 15
Chapter 16
Chapter 17
Chapter 18
Chapter 19
Chapter 20
Chapter 21
Bibliography
Index

I've got another one of his books (1)

spauldo (118058) | more than 8 years ago | (#13047173)

I've got "Internetworking with TCP/IP Vol. 3 (Sockets)" that I picked up in a used bookstore for a dollar. It was written in '93 and deals with 4.3BSD - all the code examples are in K&R-style C and the API's are old, but the algorithms are there and the advice on design is very relevant.

It's a really good book. My first network-aware programs were written using this book. There's examples for several different protocols and a deep discussion of Sun RPC. Concurrency takes a couple of chapters and ideas on server design appear throughout the book. It doesn't cover STREAMS (there was an alternate book for that) or deal with threading, but it's more than enough for most new network programmers.

I'd highly reccommend Stevens if his other books are as useful as this one.

Re:I've got another one of his books (2, Informative)

HyperChicken (794660) | more than 8 years ago | (#13047231)

The "Internetworking With TCP/IP" series was written by Douglas Comer, not Richard Stevens.

Stevens wrote the "TCP/IP Illustrated" series and the "UNIX Network Programming" series, along with such other titles as "Advanced Programming in the UNIX Environment".

Re:I've got another one of his books (1)

Goosefood (884250) | more than 8 years ago | (#13047337)

The dude sure wrote a couple of good books. Even as references they were very usefull. Now how should I interpret the return for recv() again? /me runs of to his bookshelf

Re:I've got another one of his books (1)

OverCode@work (196386) | more than 8 years ago | (#13048578)

UNIX Network Programming is an absolute must-have for anyone who wants to learn network coding. It explains everything you need to know for both clients and servers, discusses the various threading and forking models servers use, covers pthreads, and touches on lots of other essential subjects.

Later in the book Stevens goes on to explain the protocols in depth, developing ping and traceroute clients using raw sockets. With help from this chapter I successfully scared the crap out of a nearby friend by blasting his firewall with forged IP packets. :)

UNP comes off my shelf every time I have to write network-related code.

-John

A related recommendation (4, Informative)

photon317 (208409) | more than 8 years ago | (#13047211)

Stevens' books are always great, and this one is no exception. I use this book regularly and I highly recommend it. But that aside, there is another shorter and somewhat overlapping book: Advanced Unix Programming: 2nd Edition [barnesandnoble.com] by Marc J. Rockhind, that I highly recommend anyone who might like the reviewed Stevens book should check out as well. Link was the only bn.com reference to it that I saw, but my copy is softcover, whereas the link appears to be hardcover.

A Dilbert strip? Really? (4, Insightful)

Indomitus (578) | more than 8 years ago | (#13047303)

Are they really going to put a Dilbert cartoon on the cover? It's a funny one but the original book has kind of a classic, authoritative look to it. Putting a comic strip on the cover makes it look more like one of those jokey 'Unix in 3 hours!' books.

He was a nice person. (1)

thisissilly (676875) | more than 8 years ago | (#13047413)

At least he was to me, the one time I met him at a Usenix conference, where he autographed one of his books for me.

His books were tops in the field. Glad to hear the revised edition is still good.

Your Review Helps (1)

buckhead_buddy (186384) | more than 8 years ago | (#13047510)

I'd recently read Eric Raymond's The Art of Unix Programming and having particularly enjoyed his "case studies" where he'd describe the rationale behind a file format or protocol I was looking for a book that would go into this both wider in subject area and deeper in explanation.

A friend recommended to me the book the Advanced Unix book, and I actually saw this book last week while browsing but was hesitant to purchase it. First because the Dilbert comic strip on the front made me wary that the content was superficial. And second because the extreme length suggested that the book was probably "dumped" from PDFs, man pages, and source listings rather than "written" with insight and an analytical mindset.

The book is a significant size so it will not fit comfortably into my lunch and bedtime reading routine, but if the binding on book of this size looks like it will physically hold up for me to read the parts that interest me then I'll likely shell out the money for it.

Thanks for the recommendation.

Ugh (0)

Anonymous Coward | more than 8 years ago | (#13048574)

It's an insult to the memory of Richard Stevens to mention Eric Raymond in any context associated with him. Eric Raymond on the best day of his life could not honestly pretend to deserve to sit at a table with Richard Stevens.

This book will cost $20 in India (3, Informative)

mrm677 (456727) | more than 8 years ago | (#13047584)

As a graduate student, I really needed the original APUE book at one time but was put off by the $80 asking price (or something like that). Meanwhile, all of my Indian classmates brought their "Indian" editions with them which they acquired for insanely cheap prices. The difference is that these were often paperback and definitely were denoted as a special edition for India, but the content was the same. Very discouraging for me at the time because I had no way to acquire a discounted edition.

Re:This book will cost $20 in India (1)

nanoyak (661135) | more than 8 years ago | (#13047910)

Yes. I bought this book in India, but I paid more along the lines of $10. It's a good idea to buy a lot of these books when you go to India. The content is the same just the paper quality is a tad different and is softcover. The book prices here are completly ridiculous.

Re:This book will cost $20 in India (0)

Anonymous Coward | more than 8 years ago | (#13048268)

I manage a textbook department at a south-western Virginia university, and I assure you that most people in the US are pretty upset about this question of textbook prices here vs textbook prices across the pond. In fact, it is something that Congress and a special accounting office of the Feds are looking into (and have been over the last year or so). Being the cynic I am though, I think everyone is fooling themselves if they believe that textbooks in the US will ever drop to the foriegn market prices. If anything, those folks in India will start paying the US prices.

Incidentally, it's the used book market and the blackmarket for foriegn editions that drive up the cost of new editions. Oh, and it's not your friendly college retailers fault that these prices are so sky high. The average margin on a new textbook is 20-25%, used nets around 35%. You can't sustain a multimillion dollar bookstore on that type of margin.

Re:This book will cost $20 in India (1)

beej (82035) | more than 8 years ago | (#13048788)

An Indian coworker of mine years ago would come back from his India visits with armloads of cheap computer books. $20 is on the mark.

Besides being paperback, the quality of the binding and product overall was definitely substandard. Under heavy use, I'd expect the $80 hardcover to easily withstand more than 4x the abuse.

But what I really really want is a frigging PDF version of this book. I'd pay $50 for it. Hear me, publishers? Think of the profits!

Re:This book will cost $20 in India (0)

Anonymous Coward | more than 8 years ago | (#13049218)

(is same textbook manager listed above)

There's also a push in the publishing industry to drop the paper completely and move to an electronic only format for technical manuals and textbooks (read as: things that are too cumbersome and expensive to print out). Two things are preventing this from happening: 1. from my point of view, you can barely get students to pay $20 for a cd by a band they enjoy; unless you discount the e-version down to ... well, free -- they aren't going to pay for an e-version either. 2. In the tech side of things, almost the same exact principle applies: once they put it into pdf, they relinquish all physical control of the contents, and I believe the whole *AA current debacle has proved that any DRM they put into their product will get broken in time.

I hear what you're saying, but believe you me - the *AAs are kittens compared to the tiger that is the Publishers.

Re:This book will cost $20 in India (0)

Anonymous Coward | more than 8 years ago | (#13049312)

Well ... if u want to get books from India these days ... you can use www.firstandsecond.com. The shipping is a bit costlier but if you buy more than one book ... it would be cheaper.

Advanced Unix Programming, 2nd Ed. (1)

quamaretto (666270) | more than 8 years ago | (#13047886)

Advanced Unix Programming came out with a 2nd edition in 2004, and I was lucky enough to spot it in a Half Price Books [halfpricebooks.com] here in Indy. This is very similar, in terms of upgraded content.

In particular, the test systems are the same between books. (FreeBSD, Linux, Solaris, Darwin.) Both books have grown considerably to take on the growth of Unix and the various flavors.

Of course, AUP came out in 1985, so it had a little more turf to cover.

For those not familiar with AUP, it is a slightly different beast from APUE. It only covers Unix system calls in C categorically, whereas APUE covers a wider range of tasks and subjects within Unix.

Modem chapter (1)

sben (71467) | more than 8 years ago | (#13047963)

the "Modem Dialer" example from the first edition has been removed

According to the book's official site, the modem chapter was pulled from the print edition, but it was still revised, and is available as a PDF or Postscript file.

(The site is chock full of frames, but here's the inner content page [apuebook.com] talking about it and linking to the chapter's files.)

Stevens as a Textbook - Memories (5, Interesting)

Embedded Geek (532893) | more than 8 years ago | (#13048414)

Years ago I dreamt up and championed a UNIX System Programming extension class through Cal State, Fullerton. It took tons of work to develop the class, to get the department to market it, and and then finally offer it. It was a dream come true. I used Stevens APUE as the primary text.

About three weeks into it, though, I realized I was struggling. My lectures were flat and the class really wasn't getting much out of it. I asked Paul Banks, a student who'd taken several courses with me, what I was doing wrong. "You're reading your slides, Kevin. You're not interacting with the subject matter like you usually do."

I realized that, basically, I was intimidated as Hell by Stevens' mastery of the subject. I changed my approach. The next lecture, when there was something I couldn't entirely wrap my brain around, I tried something different. I stepped away from the lectern, sat down in the chair at the front of the class and admitted my ignorance. "I don't have direct experience on this. This is how I think this thing works. Is that how you guys read it?" Sure enough, someone in the class indicated that they'd touched on the issue in their code, but had been confused. The class came alive as my lecture became a discussion, which is my preferred mode of teaching.

Looking back, I guess I owe that success to Stevens as much as the problem (and, yes, the problem was really between my ears, thank you very much...). His books have always been about experimentation as a means of understanding, not dictating down lessons down to the reader. If only I'd taken that tack when I started the class I could have saved myself much trouble. I'm just glad I corrected my approach and that everyone got a lot out of that class.

Paul passed away a few years ago and I was glad that I had made a point of thanking him profusely for his advice. My only regret about the class is that I never did the same to Stevens for APUE.

I was wondering if they'd ever update it ... (1)

LizardKing (5245) | more than 8 years ago | (#13048424)

Steven's APUE and Unix Network Programming are the books that turned me from a novice into someone who felt confident enough to pursue programming for a career. The first edition of APUE is so extremely well written - clear, concise and lucid. I'm definitely going to flick through the new edition, but the great thing is that the first one is still reelveant, in fact it's one of the five books I take with me to any new job.

Re:I was wondering if they'd ever update it ... (1)

bheading (467684) | more than 8 years ago | (#13048775)

I picked up the 2nd Ed while on a trip to NYC. My initial reading of it suggest that the new author has worked pretty hard to closely emulate Stevens' style and keep as much of his original material intact as possible. The new section on threads for example reads as though it could have been written by the man himself.

(BTW what a useless review - quoting the blurb and the preface. Slashdot often does better... )

Bought the first edition recently... (1)

jpc (33615) | more than 8 years ago | (#13049123)


Having had both editions of Unix network programming (gives me one to lend out...)

Glad it has been updated, it seems superficially dated which might put people off, although there is actually lots of stuff thats still completely valid.

Platforms? (1)

Ratbert42 (452340) | more than 8 years ago | (#13049698)

I can see Solaris and Linux, but FreeBSD and OSX? What about AIX and HP-UX? There are surely many more developers working on AIX and HP-UX than FreeBSD and OSX combined unless you just count PHP web-heads.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...