From Newsgroup: comp.lang.awk
Hi All.
This is off-topic, but may be of interest to the group. The gawk maintainer recently published a second edition of his book on basic Linux programming.
The title is "Linux Application Development by Example: The Fundamental APIs".
The book is available from Amazon (or directly from Pearson). For example,
https://www.amazon.com/Linux-Application-Development-Example-Fundamental/dp/0135325528/
Soft copy is available from O'Reilly's Safari learning platform:
https://learning.oreilly.com/library/view/linux-application-development/9780135325612/
The book is aimed at the programmer who knows C, and wants to learn
how to develop applications on Linux (or other POSIX systems). It's been updated to the latest POSIX standard, and includes two brand new chapters.
What makes this book stand out is both the order of subject presentation,
and the use of real code, from V7 Unix, BSD Unix, and GNU, wherever possible.
*Many* of the examples come from gawk, reflecting lessons he learned
the hard way. With characteristic humor and humility, he even points
out places *in his own code* where things might have been done better.
(There are also a few examples from The One True Awk.)
The book avoids Too Much Information (TMI), telling a developer just what
she needs to know, no more, but also no less. In many places, APIs are presented that should NOT be used! This is important: developers need
to know what to avoid, as well as what to embrace.
Each chapter has a section listing sources for further reading, and
concludes with well thought-out exercises to help the reader cement
their understanding of the material.
In short, highly recommended! Here is a chapter level outline:
Foreword - By Chet Ramey (maintainer of Bash)
Preface
Part I: Files
1. Introduction
2. Arguments, Options, and the Environment
3. User-Level Memory Management
4. Files and File I/O
5. Directories and File Metadata
6. General Library Interfaces --- Part 1
7. Putting It All Together: ls
8. Filesystems and Directory Walks
Part II: Processes and IPC
9. Process Management and Pipes
10. Signals
11. Permissions and User and Group ID Numbers
12. Resource Limits
13. General Library Interfaces --- Part 2
14. Sockets and Basic Networking
15. Internationalization and Localization
16. Extended Interfaces
Part III: Debugging and Final Project
17. Debugging
18. A Project That Ties Everything Together
Part IV: Appendices
A. Teach Yourself Programming in Ten Years
B. Caldera Ancient UNIX License
C. GNU General Public License
D. License for the One True Awk
--- Synchronet 3.21a-Linux NewsLink 1.2