"The first edition of this book has always been kept within arm's reach of my desk due to the wonderful explanations of all areas of the Linux userspace API. This second edition greatly overshadows the first one, and will replace it."
--Greg Kroah-Hartman, Linux kernel programmer
Develop Software that Leverages the Full Power of Today's Linux
Linux Application Development, Second Edition, is the definitive reference for Linux programmers at all levels of experience, including C programmers moving from other operating systems. Building on their widely praised first edition, leading Linux programmers Michael Johnson and Erik Troan systematically present the key APIs and techniques you need to create robust, secure, efficient software or to port existing code to Linux.
This book has been fully updated for the Linux 2.6 kernel, GNU C library version 2.3, the latest POSIX standards, and the Single Unix Specification, Issue 6. Its deep coverage of Linux-specific extensions and features helps you take advantage of the full power of contemporary Linux. Along the way, the authors share insights, tips, and tricks for developers working with any recent Linux distribution, and virtually any version of Unix.
Topics include
New to this edition
"synopsis" may belong to another edition of this title.
Michael K. Johnson is an operating system engineer at Specifix. He was formerly an operating system developer for Red Hat, where he managed the kernel team for three and a half years, and was founding technical leader of the Fedora Project. He occasionally teaches full-day tutorials on Linux application development.
Erik W. Troan, cofounder and Executive VP of Operating Systems at Specifix, was formerly Vice President of Product Engineering at Red Hat, where he was responsible for specifying and building technologies such as RPM, Linux operating systems, the Red Hat Network, high-performance Web servers, and the infrastructure for Red Hat's Web site.
We wrote this book for experienced (or not-so-experienced, but eager-to-learn) programmers who want to develop Linux software or to port software from other platforms to Linux. This is the book we wish we had when we were learning to program for Linux, and the book we now keep on our desks for reference. As soon as we wrote the first three chapters of the first edition, we were using the drafts as reference material while we worked.
This second edition removes outdated information, adds new information, and introduces an online version. You can now browse and search the entire content of this book at http://ladweb.net/ to make this book even more useful to you.
Linux is designed to be similar to Unix. This book gives you a good background in Unix programming basics and style. Linux is not fundamentally different from Unix; it differs in some details, but no more than one Unix version typically differs from another Unix version. This book is very much a Unix programming guide that is written from a Linux viewpoint and with specific Linux information.
Linux also has unique extensions, such as its direct screen access capabilities (see Chapter 21), and it has features that are used more often on it than on other systems, such as the popt library (see Chapter 26). This book covers many of those extensions and features so that you can write programs that truly take advantage of Linux.
This book is different from typical Unix programming texts because it is unabashedly specific to a particular operating system. We do not try to cover all the differences between different Unix-like systems; to do so would not be useful to Linux programmers, Unix programmers, or C programmers unfamiliar with Linux or Unix. We know from our own experience that once you learn how to program well for any Unix-like system, the others are easy to learn.
This book does not cover all the details of Linux programming. It does not explain the basic interface specified by ANSI/ISO C---other books do that quite well. It does not cover the wealth of other programming languages available for Linux, and it does not cover the graphical programming libraries that are identical no matter what system you are using. Instead, we point you to books that specialize in those areas. Without extraordinary verbosity, we cover the information you need to know to go from being a C programmer for another system, such as Windows, Macintosh, or even DOS, to being a C programmer for Linux.
Linux Application Development is written in four parts:
If you are already familiar with Linux or Unix programming, you will be able to read the chapters in this book in any order, skipping any that do not interest you. If you are not familiar with either Linux or Unix, most of the chapters will stand alone, but you will probably want to read Chapters 1, 2, 4, 5, 9, 10, 11, and 14 first, as they give you most of what you need to know to read the other chapters. In particular, Chapters 10, 11, and 14 form the core of the Unix and Linux programming model.
The following books, although they may overlap a little here and there, mostly complement this book by being simpler, more advanced, or on related topics.
All the source code in this book comes from working examples that we have tested while writing. All of the source code in this book is available in electronic format at http://ladweb.net/ In the interest of clarity, some short source code segmentscheck only for likely errors that document how the system works rather than check for all possible errors. However, in the full programs in the book and on our Web site, we have made an attempt (we are not perfect) to check for all reasonable errors.
This book will teach you which functions to use and how they fit together; we encourage you to learn also how to use the reference documentation, the great majority of which was included with your system. Chpater 3 discusses how to find online information on your Linux system.
Linux is a rapidly developing operating system, and by the time you read this book, some facts (although we hope little substance) will no doubt have changed. We wrote this book in reference to the Linux 2.6 kernel and the GNU C library version 2.3.
With your help, we will maintain a list of errata and changes on the World Wide Web at http://ladweb.net/errata.html
We welcome your comments sent to lad-comments@ladweb.net. We will read your comments, although we cannot promise to respond to them individually.
Second Edition
Additions to and modifications from the first to the second edition include:
"About this title" may belong to another edition of this title.
FREE shipping within U.S.A.
Destination, rates & speedsSeller: ZBK Books, Carlstadt, NJ, U.S.A.
Condition: good. Used book in good and clean conditions. Pages and cover are intact. Limited notes marks and highlighting may be present. May show signs of normal shelf wear and bends on edges. Item may be missing CDs or access codes. May include library marks. Fast Shipping. Seller Inventory # ZWM.H7UL
Quantity: 1 available
Seller: HPB-Red, Dallas, TX, U.S.A.
Hardcover. Condition: Good. Connecting readers with great books since 1972! Used textbooks may not include companion materials such as access codes, etc. May have some wear or writing/highlighting. We ship orders daily and Customer Service is our top priority! Seller Inventory # S_427405217
Quantity: 1 available
Seller: Bookmans, Tucson, AZ, U.S.A.
hardcover. Condition: Good. Satisfaction 100% guaranteed. Seller Inventory # mon0002641587
Quantity: 1 available
Seller: ThriftBooks-Dallas, Dallas, TX, U.S.A.
Hardcover. Condition: Good. No Jacket. Pages can have notes/highlighting. Spine may show signs of wear. ~ ThriftBooks: Read More, Spend Less 3. Seller Inventory # G0321219147I3N00
Quantity: 1 available
Seller: Shakespeare Book House, Rockford, IL, U.S.A.
Condition: Acceptable. Item in acceptable condition including possible liquid damage. As well answers may be filled in. May be missing DVDs, CDs, Access code, etc. 100%Money-Back Guarantee! Ship within 24 hours!! Seller Inventory # 570W2K00141Y_ns
Quantity: 2 available
Seller: KuleliBooks, Phoenix, AZ, U.S.A.
Condition: Good. The book may have minor cosmetic wear (i.e. creased spine/cover, scratches, curled corners, folded pages, minor sunburn, minor water damage, minor bent). The book may have some highlights/notes/underlined pages - Accessories such as CD, codes, toys, may not be included - Safe and Secure Mailer - No Hassle Return. Seller Inventory # 521YH0000EOR
Quantity: 1 available
Seller: SecondSale, Montgomery, IL, U.S.A.
Condition: Very Good. Item in very good condition! Textbooks may not include supplemental items i.e. CDs, access codes etc. Seller Inventory # 00080733221
Quantity: 1 available
Seller: The Bookseller, Edmonton, AB, Canada
Hardcover. Condition: Very Good+. 2nd Edition. Minor shelf wear. Otherwise a tight, unmarked volume. Index. xxxi, 702 pp. Seller Inventory # 064247
Quantity: 1 available
Seller: Toscana Books, AUSTIN, TX, U.S.A.
Hardcover. Condition: new. Excellent Condition.Excels in customer satisfaction, prompt replies, and quality checks. Seller Inventory # Scanned0321219147
Quantity: 1 available