CINXE.COM
Linux Programming Interface | No Starch Press
<!DOCTYPE html> <html lang="en" dir="ltr" xmlns:og="https://ogp.me/ns#"> <head> <link rel="profile" href="https://www.w3.org/1999/xhtml/vocab" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="shortcut icon" href="https://nostarch.com/sites/default/files/favicon.ico" type="image/vnd.microsoft.icon" /> <meta name="description" content="The Linux Programming Interface is a comprehensive reference to the Linux API for experienced system programmers, as well as an introductory guide to these low-level interfaces for system programming newbies." /> <meta name="generator" content="Drupal 7 (http://drupal.org)" /> <link rel="image_src" href="https://nostarch.com/sites/default/files/linuxprogramming.png" /> <link rel="canonical" href="https://nostarch.com/tlpi" /> <link rel="shortlink" href="https://nostarch.com/node/84" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://nostarch.com/tlpi" /> <meta property="og:title" content="Linux Programming Interface" /> <meta property="og:description" content="The Linux Programming Interface is a comprehensive reference to the Linux API for experienced system programmers, as well as an introductory guide to these low-level interfaces for system programming newbies." /> <meta property="og:updated_time" content="2025-03-21T09:43:54-07:00" /> <meta property="og:image:url" content="https://nostarch.com/sites/default/files/linuxprogramming.png" /> <meta property="og:image:secure_url" content="https://nostarch.com/sites/default/files/linuxprogramming.png" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@nostarch" /> <meta name="twitter:url" content="https://nostarch.com/tlpi" /> <meta name="twitter:title" content="Linux Programming Interface" /> <meta name="twitter:description" content="The Linux Programming Interface is a comprehensive reference to the Linux API for experienced system programmers, as well as an introductory guide to these low-level interfaces for system programming" /> <meta name="twitter:image" content="https://nostarch.com/sites/default/files/linuxprogramming.png" /> <meta property="product:price:amount" content="99.99" /> <meta property="product:price:currency" content="USD" /> <meta property="product:isbn" content="9781593272203" /> <meta property="article:published_time" content="2009-10-27T17:45:10-07:00" /> <meta property="article:modified_time" content="2025-03-21T09:43:54-07:00" /> <meta property="product:retailer_part_no" content="linuxprogramminginterface-Combo" /> <meta property="product:mfr_part_no" content="linuxprogramminginterface-Combo" /> <title>Linux Programming Interface | No Starch Press</title> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_lQaZfjVpwP_oGNqdtWCSpJT1EMqXdMiU84ekLLxQnc4.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_guSWpwqRBCVb2J7ivC8BaNuaPffCXmbkGB5xDBqKKu8.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_Dw0rmhFX_owMmlf1HH5Y-_BnOHcMlkri1yMjYHD4ffs.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_XJm3Wqia1GUjoI4j54duSLNZVR3Kxhbwy0s3UwuhhHg.css" media="all" /> <!-- HTML5 element support for IE6-8 --> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> <![endif]--> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script>window.jQuery || document.write("<script src='/sites/all/modules/contrib/jquery_update/replace/jquery/2.2/jquery.min.js'>\x3C/script>")</script> <script src="https://nostarch.com/misc/jquery-extend-3.4.0.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery-html-prefilter-3.5.0-backport.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery.once.js?v=1.2"></script> <script src="https://nostarch.com/misc/drupal.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/js/jquery_browser.js?v=0.0.1"></script> <script src="https://nostarch.com/misc/form-single-submit.js?v=7.103"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_file/uc_file.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/libraries/colorbox/jquery.colorbox-min.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/styles/plain/colorbox_style.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_load.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_inline.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_cart/uc_cart_block.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/modules/contrib/google_analytics/googleanalytics.js?stn5l0"></script> <script src="https://www.googletagmanager.com/gtag/js?id=UA-5027625-1"></script> <script>window.google_analytics_uacct = "UA-5027625-1";window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag("config", "UA-5027625-1", {"groups":"default","anonymize_ip":true});gtag("config", "G-51XGZT9Y4H", {"groups":"default","anonymize_ip":true});</script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/bootstrap.min.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/main.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/front_grid_height.js?stn5l0"></script> <script>jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"nostarch","theme_token":"vddPNi20a8UzdgvpRRiR3IxDGdVL7LDMZanpadmac10","js":{"sites\/all\/modules\/contrib\/addthis\/addthis.js":1,"sites\/all\/libraries\/shariff\/shariff.min.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/bootstrap.js":1,"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.2.4\/jquery.min.js":1,"0":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/contrib\/jquery_update\/js\/jquery_browser.js":1,"misc\/form-single-submit.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.js":1,"sites\/all\/libraries\/colorbox\/jquery.colorbox-min.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox.js":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_load.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_inline.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.js":1,"sites\/all\/modules\/contrib\/google_analytics\/googleanalytics.js":1,"https:\/\/www.googletagmanager.com\/gtag\/js?id=UA-5027625-1":1,"1":1,"sites\/all\/themes\/nostarch\/js\/bootstrap.min.js":1,"sites\/all\/themes\/nostarch\/js\/main.js":1,"sites\/all\/themes\/nostarch\/js\/front_grid_height.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/field\/theme\/field.css":1,"sites\/all\/modules\/contrib\/logintoboggan\/logintoboggan.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/contrib\/uc_fedex\/uc_fedex.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_order\/uc_order.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_product\/uc_product.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_store\/uc_store.css":1,"sites\/all\/modules\/contrib\/views\/css\/views.css":1,"sites\/all\/modules\/contrib\/ckeditor\/css\/ckeditor.css":1,"sites\/all\/modules\/contrib\/uc_discounts_alt\/uc_discounts\/uc_discounts.css":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.css":1,"sites\/all\/modules\/contrib\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.css":1,"sites\/all\/libraries\/shariff\/shariff.complete.css":1,"sites\/all\/themes\/nostarch\/css\/en_styles.css":1,"sites\/all\/themes\/nostarch\/css\/custom.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-vert-offset.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-autoclear.css":1,"sites\/all\/themes\/nostarch\/css\/glyphicons.css":1}},"colorbox":{"opacity":"0.85","current":"{current} of {total}","previous":"\u00ab Prev","next":"Next \u00bb","close":"Close","maxWidth":"98%","maxHeight":"98%","fixed":true,"mobiledetect":true,"mobiledevicewidth":"480px","file_public_path":"\/sites\/default\/files","specificPagesDefaultValue":"admin*\nimagebrowser*\nimg_assist*\nimce*\nnode\/add\/*\nnode\/*\/edit\nprint\/*\nprintpdf\/*\nsystem\/ajax\nsystem\/ajax\/*"},"better_exposed_filters":{"views":{"topics":{"displays":{"block":{"filters":[]}}},"related_products":{"displays":{"block":{"filters":[]}}}}},"googleanalytics":{"account":["UA-5027625-1","G-51XGZT9Y4H"],"trackOutbound":1,"trackMailto":1,"trackDownload":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip","trackColorbox":1},"urlIsAjaxTrusted":{"\/tlpi":true},"bootstrap":{"anchorsFix":"0","anchorsSmoothScrolling":"0","formHasError":1,"popoverEnabled":1,"popoverOptions":{"animation":1,"html":0,"placement":"right","selector":"","trigger":"click","triggerAutoclose":1,"title":"","content":"","delay":0,"container":"body"},"tooltipEnabled":1,"tooltipOptions":{"animation":1,"html":0,"placement":"auto left","selector":"","trigger":"hover focus","delay":0,"container":"body"}}});</script> </head> <body class="html not-front not-logged-in two-sidebars page-node page-node- page-node-84 node-type-product uc-product-node"> <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a> </div> <header id="" class="header" role="banner" class="navbar navbar-default"> <div class="container"> <div class="row"> <nav role="navigation" class="navbar navbar-default visible-xs"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand text-uppercase" href="/"><img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/></a> </div> <div id="navbar" class="navbar-collapse collapse text-center"> <ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/tlpi" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-lxQpp0uCWx1VCw9orh2CLSwMWe0B3IQ-rb4_g4Lh_BQ" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </nav> <div class="navbar-header"> <div class="logo-wrapper col-sm-6 hidden-xs"> <a class="logo navbar-btn pull-left" href="/" title="Home"> <img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/> </a> </div> <div class="logo-wrapper col-sm-6 hidden-xs"> <div class="region region-navigation"> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/tlpi" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-lxQpp0uCWx1VCw9orh2CLSwMWe0B3IQ-rb4_g4Lh_BQ" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="navbar-collapse collapse"> <nav role="navigation"> <ul class="menu nav navbar-nav"><ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul></ul> </nav> </div> </div> </div> </header> <div class="main-container container"> <header role="banner" id="page-header"> </header> <!-- /#page-header --> <div class="row"> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-first well"> <section id="block-views-topics-block" class="block block-views clearfix"> <button class="btn btn-primary btn-block visible-xs vert-offset-top-2" data-toggle="collapse" data-target="#topics"><span class="glyphicon glyphicon-menu-down pull-left"></span> <span class="btn-text">Topics</span><span class="glyphicon glyphicon-menu-down pull-right"></span></button> <h2 class="block-title hidden-xs">Topics</h2> <div id="topics" class="view-content collapse dont-collapse animateCollapse"> <div class="view view-topics view-id-topics view-display-id-block view-dom-id-bcb6ef0fa605a6b6b3a3acd762e5e953"> <div class="view-content"> <div class="item-list"> <ul> <li class="views-row views-row-1 views-row-odd views-row-first"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/art-photography-design">Art & Design</a></span> </div></li> <li class="views-row views-row-2 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/general-computing">General Computing</a></span> </div></li> <li class="views-row views-row-3 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/security">Hacking & Computer Security</a></span> </div></li> <li class="views-row views-row-4 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/hardware-and-diy">Hardware / DIY</a></span> </div></li> <li class="views-row views-row-5 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/kids">Kids</a></span> </div></li> <li class="views-row views-row-6 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/lego">LEGO®</a></span> </div></li> <li class="views-row views-row-7 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/linux-bsd-unix">Linux & BSD</a></span> </div></li> <li class="views-row views-row-8 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/manga">Manga</a></span> </div></li> <li class="views-row views-row-9 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/programming">Programming</a></span> </div></li> <li class="views-row views-row-10 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/python">Python</a></span> </div></li> <li class="views-row views-row-11 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/rforall">R for All</a></span> </div></li> <li class="views-row views-row-12 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/science-math">Science & Math</a></span> </div></li> <li class="views-row views-row-13 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/scratch">Scratch</a></span> </div></li> <li class="views-row views-row-14 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/system-administration">System Administration</a></span> </div></li> <li class="views-row views-row-15 views-row-odd views-row-last"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/early-access">Early Access</a></span> </div></li> </ul></div> </div> <div class="view-footer"> <style> <!--/*--><![CDATA[/* ><!--*/ .view-topics .item-list a {font-weight: bold;} .view-topics ul {padding-left: 20px;} /*--><!]]>*/ </style> </div> </div> </div> </section><section id="block-block-12" class="block block-block clearfix"> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><span style="color:#c0392b"><a href="https://nostarch.com/about_ebooks.htm">FREE ebook edition with every print book purchased from nostarch.com!</a></span></span></strong></span></div> <p class="rtecenter"><span style="font-size:22px">+</span></p> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><a href="https://nostarch.com/early-access-program"><span style="color:#c0392b">EARLY ACCESS lets you read full chapters months before a title's release date!</span></a></span></strong></span></div> </section> <section id="block-nostarch-custom-login-block" class="block block-nostarch-customclearfix"> <h2 class="block-title">User login</h2> <ul> <li><a href="/user">Log in</a></a></li> <li><a href="/user/register">Create account</a></a></li> </ul> </section> <section id="block-block-78" class="block block-block clearfix"> <script data-account="eeqOpWOUyZ" src="https://cdn.userway.org/widget.js"></script> </section> </div> </aside> <!-- /#sidebar-first --> <section class="col-sm-6" style=""> <a id="main-content"></a> <div class="region region-content"> <section id="block-system-main" class="block block-system clearfix"> <div class="ds-1col node node-product node-promoted view-mode-full clearfix"> <div class=""> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><div class="product-image"><div class="main-product-image"><a href="https://nostarch.com/sites/default/files/styles/uc_product_full/public/linuxprogramming.png?itok=RwrlHcGC" title="Linux Programming Interface" class="colorbox" rel="uc_image_0"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/linuxprogramming.png?itok=w9jg5UTq" alt="Linux Programming Interface" title="Linux Programming Interface" /></a></div></div></div></div></div><div class="field field-name-entity-title field-type-ds field-label-hidden"><div class="field-items"><div class="field-item even"><h1 class="page-header">Linux Programming Interface</h1></div></div></div><div class="field field-name-field-subtitle field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">A Linux and UNIX System Programming Handbook</div></div></div><div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">by Michael Kerrisk</div></div></div><div class="field field-name-released-date field-type-ds field-label-hidden"><div class="field-items"><div class="field-item even">October 2010, 1552 pp.</div></div></div><div class="field field-name-field-isbn13 field-type-text field-label-inline clearfix clearfix"><div class="field-label">ISBN-13: </div><div class="field-items"><div class="field-item even">9781593272203</div></div></div><div class="field field-name-field-special field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Hardcover</div></div></div><div class="add-to-cart"><form action="/tlpi" method="post" id="uc-product-add-to-cart-form-84" accept-charset="UTF-8"><div><div id="uc_product_add_to_cart_form-84-attributes" class="attributes"><div class="attribute attribute-1 odd"><div class="form-item form-item-attributes-1 form-type-radios form-group"><div id="edit-attributes-1" class="form-radios"><div class="form-item form-item-attributes-1 form-type-radio radio"> <label class="control-label" for="edit-attributes-1-3"><input type="radio" id="edit-attributes-1-3" name="attributes[1]" value="3" checked="checked" class="form-radio" />Print Book and FREE Ebook, $99.99</label> </div><div class="form-item form-item-attributes-1 form-type-radio radio"> <label class="control-label" for="edit-attributes-1-2"><input type="radio" id="edit-attributes-1-2" name="attributes[1]" value="2" class="form-radio" />Ebook (PDF, Mobi, and ePub), $79.99</label> </div></div></div></div></div><input type="hidden" name="qty" value="1" /> <input type="hidden" name="form_build_id" value="form-I4_eqX32fM-KfOaxqqgGh8lv0l6MyRRfF1ICeXN1INU" /> <input type="hidden" name="form_id" value="uc_product_add_to_cart_form_84" /> <div class="form-actions form-wrapper form-group" id="edit-actions"><button class="node-add-to-cart btn btn-success form-submit icon-before" type="submit" id="edit-submit-84" name="op" value="Add to cart"><span class="icon glyphicon glyphicon-plus" aria-hidden="true"></span> Add to cart</button> </div></div></form></div><div class="field field-name-product-menu field-type-ds field-label-hidden"><div class="field-items"><div class="field-item even"><div class="menu-wrapper"><ul class="menu nav"><li><a href="#content">Contents</a></li><li><a href="#reviews">Reviews</a></li><li><a href="#updates">Updates</a></li></ul></div></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><ul> <li><u><a href="/download/samples/LinuxProgrammingInterface_Chapter4_Updated.pdf"><b>Download Chapter 4: File I/O: The Universal I/O Model</b></a></u></li> <li><u><a href="/download/samples/LinuxProgrammingInterface_Chapter24_Updated.pdf"><b>Download Chapter 24: Process Creation</b></a></u></li> <li><u><a href="/download/samples/LinuxProgrammingInterface_Chapter52_Updated.pdf"><b>Download Chapter 52: POSIX Message Queues</b></a></u></li> <li><u><a href="http://man7.org/tlpi/"><b>Visit the author's website for further information, source code, news, and errata for the book</b></a></u></li> </ul> <p><i>The Linux Programming Interface</i> (TLPI) is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.</p> <p>In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.</p> <p>You'll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You'll learn how to:</p> <ul> <li>Read and write files efficiently</li> <li>Use signals, clocks, and timers</li> <li>Create processes and execute programs</li> <li>Write secure programs</li> <li>Write multithreaded programs using POSIX threads</li> <li>Build and use shared libraries</li> <li>Perform interprocess communication using pipes, message queues, shared memory, and semaphores</li> <li>Write network applications with the sockets API</li> </ul> <p>While <i>The Linux Programming Interface</i> covers a wealth of Linux-specific features, including <i>epoll</i>, <i>inotify</i>, and the <i>/proc</i> file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.</p> <p><i>The Linux Programming Interface</i> is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that's destined to become a new classic.</p> </div></div></div><div class="field field-name-field-author-bio field-type-text-long field-label-abovec"><div class="field-label">Author Bio </div><div class="field-items"><div class="field-item even"><p><b>Michael Kerrisk</b> has been using and programming UNIX systems for more than 20 years, and has taught many week-long courses on UNIX system programming. Since 2004, he has maintained the <i>man-pages</i> project (<b><u><a href="http://www.kernel.org/doc/man-pages/">http://www.kernel.org/doc/man-pages/</a></u></b>), which produces the manual pages describing the Linux kernel and <i>glibc</i> programming APIs. He has written or co-written more than 250 of the manual pages and is actively involved in the testing and design review of new Linux kernel-userspace interfaces. Michael lives with his family in Munich, Germany.</p> </div></div></div><div class="field field-name-field-toc field-type-text-long field-label-abovec" id="content"><div class="field-label">Table of contents </div><div class="field-items"><div class="field-item even"><p><b>Preface</b></p> <p><b>Chapter 1:</b> History and Standards<br /> <b>Chapter 2:</b> Fundamental Concepts<br /> <b>Chapter 3:</b> System Programming Concepts<br /> <u><a href="http://www.nostarch.com/download/TLPI_Ch4.pdf"><b>Chapter 4: File I/O: The Universal I/O Model</b></a></u><br /> <b>Chapter 5:</b> File I/O: Further Details<br /> <b>Chapter 6:</b> Processes<br /> <b>Chapter 7:</b> Memory Allocation<br /> <b>Chapter 8:</b> Users and Groups<br /> <b>Chapter 9:</b> Process Credentials<br /> <b>Chapter 10:</b> Time<br /> <b>Chapter 11:</b> System Limits and Options<br /> <b>Chapter 12:</b> System and Process Information<br /> <b>Chapter 13:</b> File I/O Buffering<br /> <b>Chapter 14:</b> File Systems<br /> <b>Chapter 15:</b> File Attributes<br /> <b>Chapter 16:</b> Extended Attributes<br /> <b>Chapter 17:</b> Access Control Lists<br /> <b>Chapter 18:</b> Directories and Links<br /> <b>Chapter 19:</b> Monitoring File Events<br /> <b>Chapter 20:</b> Signals: Fundamental Concepts<br /> <b>Chapter 21:</b> Signals: Signal Handlers<br /> <b>Chapter 22:</b> Signals: Advanced Features<br /> <b>Chapter 23:</b> Timers and Sleeping<br /> <u><a href="http://www.nostarch.com/download/TLPI_Ch24.pdf"><b>Chapter 24: Process Creation</b></a></u><br /> <b>Chapter 25:</b> Process Termination<br /> <b>Chapter 26:</b> Monitoring Child Processes<br /> <b>Chapter 27:</b> Program Execution<br /> <b>Chapter 28:</b> Process Creation and Program Execution in More Detail<br /> <b>Chapter 29:</b> Threads: Introduction<br /> <b>Chapter 30:</b> Threads: Thread Synchronization<br /> <b>Chapter 31:</b> Threads: Thread Safety and Per-Thread Storage<br /> <b>Chapter 32:</b> Threads: Thread Cancellation<br /> <b>Chapter 33:</b> Threads: Further Details<br /> <b>Chapter 34:</b> Process Groups, Sessions, and Job Control<br /> <b>Chapter 35:</b> Process Priorities and Scheduling<br /> <b>Chapter 36:</b> Process Resources<br /> <b>Chapter 37:</b> Daemons<br /> <b>Chapter 38:</b> Writing Secure Privileged Programs<br /> <b>Chapter 39:</b> Capabilities<br /> <b>Chapter 40:</b> Login Accounting<br /> <b>Chapter 41:</b> Fundamentals of Shared Libraries<br /> <b>Chapter 42:</b> Advanced Features of Shared Libraries<br /> <b>Chapter 43:</b> Interprocess Communication Overview<br /> <b>Chapter 44:</b> Pipes and FIFOs<br /> <b>Chapter 45:</b> Introduction to System V IPC<br /> <b>Chapter 46:</b> System V Message Queues<br /> <b>Chapter 47:</b> System V Semaphores<br /> <b>Chapter 48:</b> System V Shared Memory<br /> <b>Chapter 49:</b> Memory Mappings<br /> <b>Chapter 50:</b> Virtual Memory Operations<br /> <b>Chapter 51:</b> Introduction to POSIX IPC<br /> <u><a href="http://www.nostarch.com/download/TLPI_Ch52.pdf"><b>Chapter 52: POSIX Message Queues</b></a></u><br /> <b>Chapter 53:</b> POSIX Semaphores<br /> <b>Chapter 54:</b> POSIX Shared Memory<br /> <b>Chapter 55:</b> File Locking<br /> <b>Chapter 56:</b> Sockets: Introduction<br /> <b>Chapter 57:</b> Sockets: UNIX Domain<br /> <b>Chapter 58:</b> Sockets: Fundamentals of TCP/IP Networks<br /> <b>Chapter 59:</b> Sockets: Internet Domains<br /> <b>Chapter 60:</b> Sockets: Server Design<br /> <b>Chapter 61:</b> Sockets: Advanced Topics<br /> <b>Chapter 62:</b> Terminals<br /> <b>Chapter 63:</b> Alternative I/O Models<br /> <b>Chapter 64:</b> Pseudoterminals</p> <p><b>Appendix A:</b> Tracing System Calls<br /> <b>Appendix B:</b> Parsing Command-Line Options<br /> <b>Appendix C:</b> Casting the NULL Pointer<br /> <b>Appendix D:</b> Kernel Configuration<br /> <b>Appendix E:</b> Further Sources of Information<br /> <b>Appendix F:</b> Solutions to Selected Exercises</p> <p>View the detailed <a href="/download/TLPI_DetailedContents.pdf">Table of Contents</a> (PDF)<br /> View the <a href="/download/TLPI Index.pdf">Index</a> (PDF)</p> </div></div></div><div class="field field-name-field-reviews field-type-text-long field-label-abovec" id="reviews"><div class="field-label">Reviews </div><div class="field-items"><div class="field-item even"><p>"If I had to choose a single book to sit next to my machine when writing software for Linux, this would be it."<br /> —<b>Martin Landers, Software Engineer, Google</b></p> <p>"<i>Everything</i> relating to the subject that I could reasonably think of is in the book, in a very thorough and maniacally complete yet enjoyably readable way."<br /> —<b>Federico Lucifredi, Slashdot.org</b> (<a href="http://books.slashdot.org/story/10/11/08/1430238/The-Linux-Programming-Interface" target="new">Read More</a>)</p> <p>"This book, with its detailed descriptions and examples, contains everything you need to understand the details and nuances of the low-level programming APIs in Linux . . . no matter what the level of reader, there will be something to be learnt from this book."<br /> —<b>Mel Gorman, Author of <i>Understanding the Linux Virtual Memory Manager</i></b></p> <p>"Michael Kerrisk has not only written a great book about Linux programming and how it relates to various standards, but has also taken care that bugs he noticed got fixed and the man pages were (greatly) improved. In all three ways, he has made Linux programming easier. The in-depth treatment of topics in <i>The Linux Programming Interface</i> . . . makes it a must-have reference for both new and experienced Linux programmers."<br /> —<b>Andreas Jaeger, Program Manager, openSUSE, Novell</b></p> <p>"Michael's inexhaustible determination to get his information right, and to express it clearly and concisely, has resulted in a strong reference source for programmers. While this work is targeted at Linux programmers, it will be of value to any programmer working in the UNIX/POSIX ecosystem."<br /> —<b>David Butenhof, Author of <i>Programming with POSIX Threads</i> and Contributor to the POSIX and UNIX Standards</b></p> <p>". . . a very thorough—yet easy to read—explanation of UNIX system and network programming, with an emphasis on Linux systems. It's certainly a book I'd recommend to anybody wanting to get into UNIX programming (in general) or to experienced UNIX programmers wanting to know 'what's new' in the popular GNU/Linux system."<br /> —<b>Fernando Gont, Network Security Researcher, IETF Participant, and RFC Author</b></p> <p>". . . encyclopedic in the breadth and depth of its coverage, and textbook-like in its wealth of worked examples and exercises. Each topic is clearly and comprehensively covered, from theory to hands-on working code. Professionals, students, educators, this is the Linux/UNIX reference that you have been waiting for."<br /> —<b>Anthony Robins, Associate Professor of Computer Science, The University of Otago</b></p> <p>"I've been very impressed by the precision, the quality and the level of detail Michael Kerrisk put in his book. He is a great expert of Linux system calls and lets us share his knowledge and understanding of the Linux APIs."<br /> —<b>Christophe Blaess, Author of <i>Programmation système en C sous Linux</i></b></p> <p>". . . an essential resource for the serious or professional Linux and UNIX systems programmer. Michael Kerrisk covers the use of all the key APIs across both the Linux and UNIX system interfaces with clear descriptions and tutorial examples and stresses the importance and benefits of following standards such as the Single UNIX Specification and POSIX 1003.1."<br /> —<b>Andrew Josey, Director, Standards, The Open Group, and Chair of The POSIX 1003.1 Working Group</b></p> <p>"What could be better than an encyclopedic reference to the Linux system, from the standpoint of the system programmer, written by none other than the maintainer of the man pages himself? <i>The Linux Programming Interface</i> is comprehensive and detailed. I firmly expect it to become an indispensable addition to my programming bookshelf."<br /> —<b>Bill Gallmeister, Author of <i>POSIX.4 Programmer's Guide: Programming for the Real World</i></b></p> <p>". . . the most complete and up-to-date book about Linux and UNIX system programming. If you're new to Linux system programming, if you're a UNIX veteran focused on portability while interested in learning the Linux way, or if you're simply looking for an excellent reference about the Linux programming interface, then Michael Kerrisk's book is definitely the companion you want on your bookshelf."<br /> —<b>Loïc Domaigné, Chief Software Architect (Embedded), Corpuls.com</b></p> <p>"I found <i>The Linux Programming Interface</i> to be extremely useful and expect to return to it frequently. Anyone who has an interest in programming for Linux will likely feel the same way."<br /> —<b>Jake Edge, LWN.net</b> (<a href="http://lwn.net/Articles/423417/" target="new">Read More</a>)</p> <p>"Michael Kerrisk's new book [is] a thing of beauty. A book you're proud to just have on the shelf, but too useful to stay there."<br /> —<b>Serge Hallyn, Linux Kernel Developer</b></p> <p>"If you think you don't need this book since you know everything already, that's what I thought too, and I was wrong."<br /> —<b>Bert Hubert, Netherlabs Computer Consulting</b></p> </div></div></div><div class="field field-name-field-updates field-type-text-long field-label-abovec" id="updates"><div class="field-label">Updates </div><div class="field-items"><div class="field-item even"><p>Visit <u><a href="http://man7.org/tlpi/" target="_blank">the author's website</a></u> for further information, source code, news, and errata.</p> </div></div></div> </div> </div> </section> <section id="block-shariff-shariff-block" class="block block-shariff clearfix"> <div class="shariff" data-services="["facebook","print","twitter"]" data-theme="colored" data-orientation="horizontal" data-twitter-via="nostarch" data-lang="en"></div> </section> </div> </section> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-second"> <section id="block-system-navigation" class="block block-system block-menu clearfix"> <h2 class="block-title">Navigation</h2> <ul class="menu nav"><li class="first last leaf"><a href="/user" title="">My account</a></li> </ul> </section> <section id="block-block-52" class="block block-block clearfix"> <p><a href="/mailchimp/subscribe">Want sweet deals? <br />Sign up for our newsletter.</a></p> </section> <section id="block-views-related-products-block" class="block block-views clearfix"> <h2 class="block-title">You might also like...</h2> <div class="view view-related-products view-id-related_products view-display-id-block auto-clear view-dom-id-6bc13650ab03a6aa7b7c7eefb5457534"> <div class="view-content"> <div class="views-row views-row-1 views-row-odd views-row-first col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/scratchjrcards"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/scratchjrcc_cover-front_new.png?itok=rR9iqynC" width="90" height="123" alt="ScratchJr Coding Cards" title="ScratchJr Coding Cards" /></a></div> </div> </div> <div class="views-row views-row-2 views-row-even col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/gnumake"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/GNUmake_cover-front.png?itok=bf_r9rsX" width="90" height="119" alt="The GNU Make Book" title="The GNU Make Book" /></a></div> </div> </div> <div class="views-row views-row-3 views-row-odd col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/computer-science-from-scratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/CompScienceScratch_placeholder.png?itok=enWtMIOe" width="90" height="119" alt="Computer Science From Scratch placeholder cover" title="Computer Science From Scratch placeholder cover" /></a></div> </div> </div> <div class="views-row views-row-4 views-row-even col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/dive-systems"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/Dive_Into_Systems_front_cover.png?itok=lRijsdEN" width="90" height="119" alt="Dive Into Systems Cover" title="Dive Into Systems Cover" /></a></div> </div> </div> <div class="views-row views-row-5 views-row-odd col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/networkprogrammingwithgo"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/NetworkProgrammingWithGo_coverl.png?itok=ot2eg8ex" width="90" height="120" alt="Network Programming with Go Cover" title="Network Programming with Go Cover" /></a></div> </div> </div> <div class="views-row views-row-6 views-row-even views-row-last col-xs-6 col-sm-6 col-md-12"> <div class="views-field views-field-field-image-cache"> <div class="field-content"><a href="/hello-web-design"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/product/public/hello-web-design-cover-020621_PRINT_cmyk2.png?itok=CSdotAaS" width="90" height="147" alt="Hello Web Design Cover" title="Hello Web Design Cover" /></a></div> </div> </div> </div> </div> </section> </div> </aside> <!-- /#sidebar-second --> </div> </div> <footer class="footer container"> <div class="region region-footer"> <section id="block-block-16" class="block block-block clearfix"> <div id="footer-links"> <br> <a class="footer-links" href="/about.htm">About Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/Jobs.htm">Jobs!</a> <span class="footer-divider">|</span> <a class="footer-links" href="/distribution.htm">Sales and Distribution</a> <span class="footer-divider">|</span> <a class="footer-links" href="/rights">Rights</a> <span class="footer-divider">|</span> <a class="footer-links" href="/media.htm">Media</a> <span class="footer-divider">|</span> <a class="footer-links" href="/academic.htm">Academic Requests</a> <span class="footer-divider">|</span> <a class="footer-links" href="/conferences.htm">Conferences</a> <span class="footer-divider">|</span> <a class="footer-links" href="/orderfaq.htm">FAQ</a> <span class="footer-divider">|</span> <a class="footer-links" href="/contactus">Contact Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/writeforus">Write for Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/privacypolicy.htm">Privacy</a> </div> </section> <section id="block-nostarch-custom-custom-footer-copyright" class="block block-nostarch-custom clearfix"> <div class="block-block"> <p>Copyright 2025. No Starch Press, Inc</p> </div> </section> </div> </footer> <script src="https://nostarch.com/sites/all/modules/contrib/addthis/addthis.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/libraries/shariff/shariff.min.js?stn5l0"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/bootstrap.js?stn5l0"></script> <!-- Reddit Pixel --> <script> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);rdt('init','t2_6acpsf9y');rdt('track', 'PageVisit'); </script> <!-- DO NOT MODIFY UNLESS TO REPLACE A USER IDENTIFIER --> <!-- End Reddit Pixel --> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'92b0d39bee5afd08',t:'MTc0Mzc2OTkyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>