Hi all

Can anyone point me towards any concise programming resources for linux

I am new to programming in a linux environment and I must say I miss the availability of near precise documentation in the one spot. (windows API)

With linux I find I am constantly searching which is a huge timewaster.
For example I created a threaded program when I ran into a gotcha.

after several minutes thread creation failed.
the gotcha was that a thread is created with the default attributes which specify that the thread must be joined. thus when exiting the thread it was not destroyed but instead became a zombie. this was not in the documentation for pthread_create. it is assumed you know it.

The LIBC docs said if you don't specify the attribute parameter the defaults are used, but nothing to say what they were or what they did. It took another 5 minutes of searching to find what those defaults were. but they did not provide the possible settings just the default. another 5 minutes to turn up more info. and then I found you can't set elements in it like a struct, you need to call functions to set the attributes. I only realised this after reading the header files.

So I find I am spending an enormous amount of time in research and precious little in development.

Perhaps I found the worst of the lot in my first foray into linux programming or maybe I have a lot more of this to come ?

The documentation can be good in linux but it is very adhoc, and too much is assumed. People trying to make the transition are often left floundering.

do a "man pthread_create" to see what I mean. its there but essentially unusable, it gives you just enough information to get you into trouble.

I am thinking I need to buy a good book on programming in linux. but I am afraid it will be nothing more than a printed version of the man pages. and thus a waste,(why buy it when I can Man it).