#394 in Computers & technology books
Use arrows to jump to the previous/next product

Reddit mentions of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)

Sentiment score: 6
Reddit mentions: 10

We found 10 Reddit mentions of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series). Here are the top ones.

Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)
Buying options
View on Amazon.com
or
Specs:
Height9.5 Inches
Length7.25 Inches
Number of items1
Weight3.4392112872 Pounds
Width2 Inches

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Found 10 comments on Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series):

u/wadcann · 12 pointsr/linux

>Why does Linux limit itself to this file name size?

What should it be? Posix requires it to be capped at NAME_MAX. That could be anything, but on my Linux distro happens to be 255. You could increase that and recompile your libs and apps if you wanted, but the Posix folks happened to choose to put a compile-time constant length on things back when. They probably did that because it makes handling some things more convenient. I imagine that somewhere, there's code that statically-allocates stuff of NAME_MAX + 1 length, so jacking up NAME_MAX to, say, 1MB would probably cause some programs to use a lot of memory...so that hasn't been done.

As to why Linux uses 256 instead of NAME_MAX + 1 in the header, go look at your system headers. On my system, /usr/include/x86_64-linux-gnu/bits/dirent.h has the following:

char d_name[256]; / We must not include limits.h! /

I imagine that 256 is used rather than NAME_MAX + 1 because they don't want to have the kernel header depend on that other header; maybe it creates a dependency loop, where limits.h depends on dirent.h and visa versa to find various constants. I'm not sure which standard "owns" NAME_MAX, but perhaps it's something that the kernel provides and libc is responsible for setting based on the kernel. It does seem a bit odd that there isn't a constant defined in the kernel headers (that libc defines NAME_MAX to on Linux) that is also used here and anywhere else a filename might show up, but I expect that the kernel folks had a reason for that.

EDIT: note also that the Windows API has a similar such restriction:

>>What is the maximum length of a file name?
>
>Windows usually limits file names to 260 characters. But the file name must actually be shorter than that, since the complete path (such as C:\Program Files\filename.txt) is included in this character count. This is why you might occasionally encounter an error when copying a file with a very long file name to a location that has a longer path than its current location.

Huh...I thought that they had a maximum path length of 1024 characters (or bytes; don't recall) but then I haven't done Windows programming for a while now...seems that 260 is correct, though.

>As a side note: any links to really good resources or articles for Unix/Linux systems programming in C would be much appreciated.

Seems like a pretty broad range of material, if you just want articles. I mean...you might want to narrow down what you're looking for a bit. I think that Advanced Programming in the Unix Environment is probably a worthwhile book to go through, if you just want a "C on Unix" book.

u/nsgf · 6 pointsr/programming

Same here (but also got a copy of "Advanced Programming in the UNIX Environment" by W. Richard Stevens, Stephen A. Rago
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949).

u/cdarwin · 5 pointsr/cpp

The first book you need is Advanced Programming in the UNIX Environment. This is the bible for socket programming (among other things).

This book is based on C. A good resource is The Indispensable Guide to C.

Hope this helps.

u/zubzub2 · 2 pointsr/AskReddit

>On a related note fuck tcsetpgrp.

Get yourself a copy of Advanced Programming in the Unix Environment, Second Edition. One of the few computer books I recommend reading.

It contains pretty concise (well, the book is big, but there's not much fluff) summaries of a lot of Unix systems stuff, including a lot of gotchas. Reading that earlier would have saved me a not insignificant amount of time on Unix systems later.

u/too_many_puppies · 2 pointsr/linux

In college I took a class that used this book as the text book. I loved that class and my knowlege and love of linux/unix definately benefited.
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949/ref=sr_1_1?ie=UTF8&qid=1334773536&sr=8-1

u/random_account_538 · 2 pointsr/MLPLounge

I've been slowly working my way back through this book to make sure I still remember everything. They have a newer edition out for it, so get that if you decide to pick it up. It's not a light read, and assumes you already know a fair bit about C, but it teaches things that are crucial to practical programming.

As for GTK+, there aren't too many good books on it unfortunately - at least that I've seen yet. I picked up a "Foundations of GTK+ development" book when I first started learning it. It gets you going, but leaves out a lot of what I would consider important details for more advanced things. For example printing is only very breifly covered. If there's one thing users are going to want it's printing support..

u/coned88 · 1 pointr/linux

While being a self taught sys admin is great, learning the internals of how things work can really extend your knowledge beyond what you may have considered possible. This starts to get more into the CS portion of things, but who cares. It's still great stuff to know, and if you know this you will really be set apart. Im not sure if it will help you directly as a sys admin, but may quench your thirst. Im both a programmer and unix admin, so I tend to like both. I own or have owned most of these and enjoy them greatly. You may also consider renting them or just downloading them. I can say that knowing how thing operate internally is great, it fills in a lot of holes.

OS Internals

While you obviously are successful at the running and maintaining of unix like systems. How much do you know about their internal functions? While reading source code is the best method, some great books will save you many hours of time and will be a bit more enjoyable. These books are Amazing
The Design and Implementation of the FreeBSD Operating System

Linux Kernel Development
Advanced Programming in the UNIX Environment

Networking

Learning the actual function of networking at the code level is really interesting. Theres a whole other world below implementation. You likely know a lot of this.
Computer Networks

TCP/IP Illustrated, Vol. 1: The Protocols

Unix Network Programming, Volume 1: The Sockets Networking API

Compilers/Low Level computer Function

Knowing how a computer actually works, from electricity, to EE principles , through assembly to compilers may also interest you.
Code: The Hidden Language of Computer Hardware and Software

Computer Systems: A Programmer's Perspective

Compilers: Principles, Techniques, and Tools

u/miyakohouou · 1 pointr/learnprogramming

As others have said, K&R is great for learning the C language. In addition to that, Algorithms in a Nutshell is a nice reference because it has sample code in C for a lot of major data structures and algorithms, so you can see how the language is used to implement CS concepts you might already be familiar with.

I would also highly recommend one or both of Advanced Programming in the Unix Environment or The Linux Programming Interface, which will get you up to speed on POSIX.