• Book Review: Linux Application Development By Example

    From mack@mack@the-knife.org (Mack The Knife) to comp.lang.awk on Wed Dec 31 16:14:54 2025
    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