I've purchased few unix/linux programming books and also planning to buy couple of books in future. I've got the following books;
Advanced Unix Programming(2nd ed) -- M. Rochkind.
Advanced Programming on Unix Environment(3rd ed) -- Late Rick Stevens & Rago.
Unix Systems Programming - Concurrency and Threads -- Robbins & Robbins.
I'd, also like to buy Linux programming interface (Kerrisk) and Understanding Unix/Linux Progrmming.. (Moley), but, I can't afford to buy those two books now.
Plz tell me which books I should begin with and which one I should study next when I finish (or after gaining some experiences) the first book.
IMHO, books are a bad investment. You should try to come up with scripting project that you can work on. You can also look through the posts here for things that people are working on and either try to understand and verify other people answers or even improve on other people's answers. It's fine to read about programming, but at some point you need to go and do it. If there is a particular snippet of code that you are trying to write finding it in a book will take more time than googling it. Therefore it gets easier to see what you can find from google than to pull out a physical book that might or might not have a good example for what you are trying to accomplish. You may also just want to focus on Bash with perhaps some awk and sed thrown in.
I want to learn unix system programming with the api(s) for system calls and std libs of C. I feel uneasy reading e-books so I bought hard copies.
I'm learning shl scripting.
Thnx.
Thanks. I've got the copy but it's more on programming philosophy.
I have to soil my hands by opening, reading, writing and closing
files with sys calls and using std. lib with the same functionality.
There are plenty of other jobs to do.
Unix is as much a collection of various APIs as it is a culture. Unix programs systematically react always "the same" in a very intricate way (the one which this book talks about) and even if you use all the APIs in an apparently correct way you might write a program which is "not UNIX" and will fit poorly into the rest (i have seen accomplished mainframe programmers do exactly that and the result was barely usable albeit being "correct" in some sense).
There are some books which have this lasting value - "Programming in the Unix Environment" is one of them and Raymonds' book is another. Here is another, centering on network programming, which plays a big role in a network-centered OS like UNIX: