ÿþ<?xml version="1.0" encoding="utf-16"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Edgar R. Chavez .. C/C++ </title> <link rel="stylesheet" href="../erc01.css" type="text/css" /> </head> <body> <div id="top"> <img class="quill" src="../Images/myquill5.png" alt="myQuill"></img> <h2> Edgar R. Ch&aacute;vez</h2> <h3> C/C++ </h3> </div> <div class="NavigationLinks"> <hr class="myLine" /> <ul> <li><a href="../home.html"> Home </a></li> <li><a href="./computers.html"> Computers </a></li> </ul> <hr class="myLine" /> <ul> <li><a href="./pgmglangs.html"> Programming languages </a></li> <li><a href="./c.html"> C/C++ </a></li> </ul> <ul class="NavMargin1"> <li><a href="#articles"> Articles </a></li> <li><a href="#c"> C </a></li> <li><a href="#c11"> C11 </a></li> <li><a href="#c99"> C99 </a></li> <li><a href="#codingstandards"> Coding standards </a></li> <li><a href="#cyclone"> Cyclone </a></li> <li><a href="#cpp"> C++ </a></li> <li><a href="#gcc"> GCC </a></li> </ul> <ul class="NavMargin2"> <li><a href="#gccbooks"> GCC books online </a></li> </ul> <ul class="NavMargin1"> <li><a href="#libraries"> Libraries </a></li> <li><a href="#misc"> Miscellaneous </a></li> <li><a href="./objectivec.html"> Objective C </a></li> <li><a href="#onlinebooks"> Online books </a></li> <li><a href="#security"> Security </a></li> <li><a href="#stl"> Standard Template Library </a></li> <li><a href="#tutorials"> Tutorials </a></li> </ul> <hr class="myLine" /> </div> <div class="InfoArea"> <div id="articles"><span class="Subhead2"> Articles </span> <div class="Tab5"> <p><a href="http://www.sei.cmu.edu/library/abstracts/news-at-sei/feature120061.cfm"> Secure Coding in C and C++: C-Style Strings </a> &nbsp; This article was originally published in News at SEI on: April 1, 2005 </p> <p><a href="http://www.cs.wright.edu/~tkprasad/courses/cs781/alephOne.html"> Smashing The Stack For Fun And Profit </a> &nbsp; Article by Aleph One. In C, it is possible to corrupt the execution stack by writing past the end of an auto array. Also available <a href="http://www.phrack.com/issues.html?issue=49&amp;id=14"> here </a> and <a href="http://insecure.org/stf/smashstack.html">here</a>.</p> <p><a href="http://www.andromeda.com/people/ddyer/topten.html"> The Top 10 Ways to get screwed by the C programming language </a> &nbsp; by Dave Dyer </p> </div></div> <div id="c"><span class="Subhead2"> C </span> <div class="Tab5"> <p><a href="http://en.cppreference.com/w/"> C and C++ Reference </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; A complete reference for the features in the C and C++ standard libraries. A more convenient version of the C and C++ standards.</p> <p><a href="http://www.codeproject.com/KB/cpp/pointers.aspx"> A Beginner's Guide to Pointers </a></p> <p><a href="http://barracudaserver.com/WP/DeviceControl/OOIntro.html"> ANSI C and object-oriented programming </a></p> <p><a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?C"> C </a> &nbsp; Online Dictionary of Computing. Interesting reading and links. </p> <p><a href="http://users.bestweb.net/~ctips/index.html"> C Coding Tips </a> &nbsp; Excellent advice. </p> <p><a href="http://www.acm.uiuc.edu/webmonkeys/book/c_guide/"> The C Library Reference Guide </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; By Eric Huss. </p> <p><a href="http://www.eskimo.com/~scs/cclass/cclass.html"> C Programming </a> &nbsp; Class notes for a course in C taught at the University of Washington in Seatle. </p> <p><a href="http://www2.its.strath.ac.uk/courses/c/"> C Programming </a> &nbsp; Steve Holmes, University of Strathclyde Computer Centre, Glasgow. </p> <p><a href="http://en.wikibooks.org/wiki/C_Programming"> C programming </a> &nbsp; A comprehensive look at the C programming language and its features. A featured Wikibook. </p> <ul class="noLineBreak"> <li><a href="http://en.wikipedia.org/wiki/Category:C_programming_language"> C Programming Language </a></li> <li><a href="http://en.wikipedia.org/wiki/C_standard_library"> C Standard Library </a></li> </ul> <p><a href="http://www.lysator.liu.se/c/c-www.html"> C Resources </a> See also <a href="http://www.quut.com/c/c-www/"> this list </a> of C resources. </p> <p><a href="https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard"> CERT C Secure Coding Standard </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; Version 1.0 is available as a <a href="http://www.amazon.com/CERT-Secure-Coding-Standard/dp/0321563212/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1281563639&amp;sr=1-1">book</a>. This is the next version, a work-in-progress that reflects the current thinking of the secure coding community.<br /> <a class="Tab5" href="https://www.securecoding.cert.org/confluence/display/seccode/Managed+String+Library"> Managed String Library </a><br /> <a class="Tab5" href="http://www.sei.cmu.edu/library/abstracts/reports/10tr018.cfm"> Specifications for Managed Strings, Second Edition </a></p> <p><a href="http://c-faq.com/index.html"> comp.lang.c Frequently Asked Questions </a></p> <p><a href="http://cr.yp.to/software.html"> D. J. Bernstein's software </a> &nbsp; Good cryptography code in C. </p> <p><a href="http://www.on-time.com/ddj0011.html"> Exception Handling in C without C++ </a> &nbsp; This article describes an exception-handling library in C, demonstrates how it is used, and compares it to C++ exception handling. </p> <p><a href="eprints.eemcs.utwente.nl/1077/02/book.pdf"> Functional C </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp;&nbsp; Pieter Hartel and Henk Muller. PDF file. <br /> <a class="Tab3" href="http://eprints.eemcs.utwente.nl/1077/"> Source code </a> &nbsp; HTML </p> <p><a href="http://www.jetcafe.org/jim/highlowc.html"> High and Low-level C </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp;&nbsp; Jim Larson, JPL. </p> <p><a href="http://www.greenend.org.uk/rjk/2003/03/inline.html"> Inline Functions in C </a> &nbsp; By Richard Kettlewell. GNU C supported inline functions before they were added to C99. As a result, inline functions can have significantly different semantics. This article explains the between the C99 and GNU C inline rules. </p> <p><a href="http://www.eventhelix.com/RealtimeMantra/basics/object_oriented_programming_in_c.html"> Object Oriented Programming in C </a> &nbsp; Follow interesting links at the bottom of this article. </p> <p><a href="http://www.planetpdf.com/codecuts/pdfs/ooc.pdf"> Object-oriented programming with ANSI C </a> &nbsp; Axel-Tobias Schreiner </p> <p><a href="https://computing.llnl.gov/tutorials/pthreads/#Compiling"> POSIX Threads Programming </a> &nbsp; Blaise Barney, Lawrence Livermore National Laboratory. </p> <p><a href="http://www.lysator.liu.se/c/index.html"> Programming in C </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; A collection of links. From Lysator, the Swedish Academic Computer Society. </p> <p><a href="http://iel.ucdavis.edu/publication/WhyC.html"> Ten Reasons to Teach and Learn Computer Programming in C </a> &nbsp; Harry H. Cheng, University of California at Davis. </p> <p><a href="http://www.lysator.liu.se/c/ten-commandments.html"> The Ten Commandments for C Programmers </a> &nbsp; (Annotated Edition) by Henry Spencer. </p> </div></div> <div id="c11"><span class="Subhead2"> C11 </span> <div class="Tab5"> <p><a href="http://en.wikipedia.org/wiki/C1X"> C11 </a> &nbsp; Wikipedia </p> <p><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf"> C Programming Language </a> &nbsp; International Standard - Committee Draft </p> <p><a href="http://blogs.oracle.com/dew/entry/c1x_is_coming"> C1X is Coming </a> &nbsp; Includes a summary of what's new in C1X over C99. </p> <p><a href="http://www.drdobbs.com/cpp/232800444?pgno=1"> C Finally Gets A New Standard </a> &nbsp; Dr. Dobbs. Also <a href="http://www.drdobbs.com/article/print?articleId=232800444&siteSectionName=cpp"> here</a>.</p> </div></div> <div id="c99"><span class="Subhead2"> C99 </span> <div class="Tab5"> <p><a href="http://www.kuro5hin.org/story/2001/2/23/194544/139"> Are you ready for C99? </a> &nbsp; Good overview. </p> <p><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=215"> A Toour of C99 </a> &nbsp; Description of the C99 core features: syntax, keywords, and built-in features. </p> <p><a href="http://www.ddj.com/cpp/184401377"> The New C: Declarations &amp; Initializations </a> &nbsp; By Randy Meyers. C99 provides many new options for when and how a variable begins its life. The benefit is code that is less buggy and more readable. </p> <p><a href="http://www.ibm.com/developerworks/linux/library/l-c99.html"> Open Source development using C99 </a> &nbsp; By Peter Seebach, IBM developerWorks. Good links </p> <p><a href="http://www.comeaucomputing.com/techtalk/c99/"> Tech Talk About C99 </a> &nbsp; Take a look a the <a href="http://www.comeaucomputing.com/booklist/"> list of books </a> they recommend. </p> </div></div> <div id="codingstandards"><span class="Subhead2"> Coding standards </span> <div class="Tab5"> <p><a href="http://www.lysator.liu.se/c/pikestyle.html"> Notes on Programming in C </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; By Rob Pike. A set of short essays that collectively encourage a philosophy of clarity in programming rather than giving hard rules. </p> <p><a href="http://www.jetcafe.org/jim/c-style.html"> Standards and Style for Coding in ANSI C </a></p> <p><a href="http://www.psgd.org/paul/docs/cstyle/cstyle.htm"> Recommended C Style and Coding Standards </a> &nbsp; Updated version of the Indian Hill C Style and Coding Standards paper. </p> </div></div> <div id="cyclone"><span class="Subhead2"> Cyclone </span> <div class="Tab5"> <p><a href="http://cyclone.thelanguage.org/"> Cyclone </a> &nbsp; A dialog of C. It has pointers and pointer arithmetic, structs, arrays, goto, manual memory management, and C's preprocessor and syntax. Cyclone adds features such as pattern matching, algebraic datatypes, exceptions, region-based memory management, and optional garbage collection. A pure Cyclone programs are not vulnerable to a wide class of bugs that plague C programs: buffer overflows, format string attacks, double free bugs, dangling pointer accesses, etc. </p> <p><a href="http://en.wikipedia.org/wiki/Cyclone_%28programming_language%29"> Cyclone </a> &nbsp; Wikipedia entry. </p> </div></div> <div id="cpp"><span class="Subhead2"> C++ </span> <div class="Tab5"> <p><a href="http://www.research.att.com/~bs/C++.html"> The C++ Programming Language </a> &nbsp; From Bjarne Stroustrup's home page. </p> <p><a href="http://www.csci.csusb.edu/dick/c++std/"> C++ Standard </a> &nbsp; ANSI Draft/ISO Working Papers, syntax summaries, STL, and other papers. </p> <p><a href="http://www.linuxselfhelp.com/HOWTO/C++Programming-HOWTO-13.html"> C++ online textbooks, tutorials, and links. </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; From LinuxSelfHelp.com </p> <p><a href="http://www.desy.de/user/projects/C++.html"> C++ Virtual Library </a></p> <p><a href="http://www.cc.gatech.edu/~yannis/fc++/"> FC++ </a> &nbsp; A library for functional programming in C++ </p> <p><a href="http://www.fltk.org/"> FLTK </a> &nbsp; Fast Light Toolkit. FLTK is a cross-platform C++ GUI toolkit. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation. </p> <p><a href="http://www.desy.de/gna/html/cc/index.html"> Introduction to Object-Oriented Programming Using C++ </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; From the <a href="http://www.gnacademy.org/"> Globewide Network Academy </a></p> <p><a href="http://www.csci.csusb.edu/dick/c++std/cd2/index.html"> Working Paper for Draft Proposed International Standard for Information Systems-- Programming Language C++ </a> November 1996 </p> <p><a href="http://zthread.sourceforge.net/index.html"> ZThreads </a> &nbsp; A platform-independent, multi-threading and synchronization library for C++. </p> </div></div> <div class="Quote1"> <hr class="myLine" />C++ is to C as Lung Cancer is to Lung. <br /> -- <a href="http://simson.net/ref/ugh.pdf"> The Unix-Haters Handbook </a> <hr class="myLine" /> </div> <div id="gcc"><span class="Subhead2"> GCC, the GNU Compiler Collection </span> <div class="Tab5"> <p><a href="http://www.gnu.org/software/gcc/index.html"> Home page </a> &nbsp; GCC, the GNU Compiler Collection </p> <p><a href="http://www.equation.com/"> GCC binaries for Windows </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; Including manuals </p> <p><a href="http://sourceforge.net/projects/gcw/"> gcw </a> &nbsp; Gcc for Windows. Yet another attempt to port gcc to Win32 platform. The major difference from MinGw and Cygwin is maximum possible acceptance of Microsoft Visual C++ source code and intended binary compatibility with Microsoft Visual C++. </p> <p><a href="http://gcc.gnu.org/onlinedocs/gccint/"> GCC Internals Manual </a></p> <p><a href="http://gcc.gnu.org/onlinedocs/"> GCC online documentation </a></p> <p><a href="http://sourceforge.net/projects/boundschecking/"> Bounds checking extension to GCC </a> &nbsp; This package adds full, fine-grained array bounds and pointer checking to GCC (C only). The result catches accesses to free()'d pointers, out-of-bounds array elements, and to automatic variables past their duration. </p> <p><a href="http://www.ibm.com/developerworks/linux/library/l-gcc4/"> Get to know GCC 4 </a></p> <p><a href="http://www.gnu.org/software/make/manual/html_node/index.html"> GNU Make Manual </a></p> <p><a href="http://www.mingw.org/"> MinGW </a> &nbsp; Minimalist GNU for Windows. A port of the GNU Compiler Collection (GCC), and GNU Binutils, for use in the development of native Microsoft Windows applications. MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. See also these <a href="http://www.redantigua.com/mingw-win.html"> installation instructions.</a></p> <p><a href="http://gcc.gnu.org/c99status.html"> Status of C99 features in GCC </a></p> </div></div> <div id="gccbooks"><span class="Subhead3"> GCC books online </span> <div class="Tab5"> <p><a href="http://books.google.com/books?id=wQ6r3UTivJgC&amp;pg=PA6&amp;lpg=PA6&amp;dq=c99+standard&amp;source=web&amp;ots=EJSmRq7yIx&amp;sig=3qL7d_2W4pQrM4iR5K3k0aOyOBQ#PPP1,M1"> The Definitive Guide to GCC </a> &nbsp; Second Edition. By William von Hagen. Limited preview from Google Books. </p> <p><a href="http://en.wikibooks.org/wiki/GNU_C_Compiler_Internals"> GNU C Compiler Internals </a> &nbsp; Wikepedia wiki book. </p> <p><a href="http://crasseux.com/books/ctutorial/"> The GNU C Programming Tutorial </a> &nbsp; The first edition of this book was written in 1987, then updated and rewritten in 1999. It was originally published by Dabs Press. After it went out of print, David Atherton of Dabs and the original author, Mark Burgess, agreed to release the manuscript. At the request of the Free Software Foundation, the book was further revised by Ron Hale-Evans in 2001 and 2002. </p> <p><a href="http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/"> Using GCC: The GNU Compiler Collection Reference Manual </a> &nbsp; By Richard M. Stallman and the GCC Developer Community. Online version </p> </div></div> <div id="libraries"><span class="Subhead2"> Libraries </span> <div class="Tab5"> <p><a href="http://www.cs.sunysb.edu/~skiena/392/programs/bignum.c"> bignum.c </a> &nbsp; Implementation of large integer arithmetic: addition, subtraction, multiplication, and division. By Steven Skiena. On the same subject, see also <a href="http://pari.math.u-bordeaux.fr/">PARI/GP</a>, a computer algebra system designed for fast computations in number theory.</p> <p><a href="http://cplus.about.com/od/codelibraryforc/A_Library_of_Software_written_in_C_with_full_source_code.html"> C Library </a> &nbsp; Software written in C with full source code from from articles, reader-submitted code, and any code that is in the public domain.</p> <p><a href="http://www.infosys.utas.edu.au/info/documentation/C/CStdLib.html"> C Standard Library </a> &nbsp; </p> <p><a href="http://www.cppreference.com/"> C/C++ Reference </a> &nbsp; Contents: C Library, C functions, C++ Standard Template Library. </p> <p><a href="http://www.cplusplus.com/reference/"> C++ Library Reference </a></p> <p><a href="http://www.gnu.org/software/libtool/manual/libc/"> The GNU C Library </a>&nbsp; This manual is available in <a href="http://www.gnu.org/software/libc/manual/"> different versions</a>. See also the <a href="http://docs.freebsd.org/info/regex/regex.info.Top.html">GNU regular expression library. </a> </p> <p><a href="http://sourceforge.net/projects/judy/)"> Judy </a> &nbsp; A general-purpose dynamic array implemented as a C callable library. Speed and memory usage are typically better than other data storage models and improves with very large data sets. </p> <p><a href="http://sourceforge.net/projects/freeassociation/"> libical </a> &nbsp; An open source reference implementation of the icalendar data type and serialization format. libical is used in dozens of calendaring and scheduling products. </p> <p><a href="http://www.cert.org/secure-coding/managedstring.html"> Managed String Library </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; Part of the <a href="https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard"> CERT Secure C Coding Standard</a>. A string library that can improve the quality and security of newly developed C-language programs. Memory is allocated and reallocated as required. This approach eliminates the possibility of unbounded copies, null-termination errors, and truncation by ensuring that there is always adequate space available for the resulting string, including the terminating null character. <br /> <a class="Tab5" href="http://www.cert.org/archive/pdf/06tr006.pdf"> Specifications for Managed Strings </a></p> <p><a href="http://legacy.imatix.com/html/sfl/"> The Standard Function Library </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; From iMatix. A portable function library for C/C++ programs, provided as Open Source software. Source and documentation available. The SFL provides about 450 functions that cover many areas. </p> <p><a href="http://cplus.about.com/od/cgame1/Games_in_C_with_Source_Code.html"> Games In C with source code </a></p> </div></div> <div id="misc"><span class="Subhead2"> Miscellaneous </span> <div class="Tab5"> <p><a href="http://cplus.about.com/od/codelibraryforc/A_Library_of_Software_written_in_C_with_full_source_code.htm"> A Library of Software written in C with full source code </a></p> <p><a href="http://www.software.ibm.com/ad/c390/index.html"> C/C++ (IBM) Home Page </a></p> <p><a href="http://www.di-mgt.com.au/cprog.html"> C Programming Language </a> &nbsp; A page dedicated to ANSI C. Links and copies of interesting or educational articles.</p> <p><a href="http://www.deitel.com/Default.aspx?tabid=204"> C Programming Resource Center </a> &nbsp; Good links. </p> <p><a href="http://www.syclus.com/cscene/"> C-Scene: The C/C++ Freezine </a> &nbsp; An online magazine devoted to C and C++ programming. </p> <p><a href="http://www.programmersheaven.com/zone3/index.html"> C/C++ Zone </a> &nbsp; At Programmer's Heaven </p> <p><a href="http://www.atomicobject.com/pages/Handbook+of+Software"> C++ and Objective C </a> &nbsp; Chapter 14 of the book Handbook of Software for Engineers and Scientists, published by CRC Press in 1996. Includes a comparison between the two languages.Interesting material, but somewhat dated: does not contain information about Apple enhancements to Objective C and does not mention Ocbjective C 2.0. </p> <p><a href="http://www.die-schoens.de/prg/index.html"> Collection of C programs </a> &nbsp; by Joerg Schoen </p> <p><a href="http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html"> Errata for <i>The C Programming Language, Second Edition</i></a></p> <p>Free </p> <ul class="noLineBreak"> <li><a href="http://www.thefreecountry.com/compilers/cpp.shtml"> C/C++ Compilers </a></li> <li><a href="http://www.thefreecountry.com/sourcecode/cpp.shtml"> C / C++ Libraries, Source Code and Frameworks </a></li> <li><a href="http://www.thefreecountry.com/documentation/onlinecpp.shtml"> Online C and C++ Documentation </a></li> </ul> <p><a href="http://www.gnu.org/prep/standards/standards.html"> GNU Coding Standards </a> &nbsp; The GNU Coding Standards were written by Richard Stallman and other GNU Project volunteers. Their purpose is to make the GNU system clean, consistent, and easy to install. This document can also be read as a guide to writing portable, robust and reliable programs. It focuses on programs written in C, but many of the rules and principles are useful even if you write in another programming language. The rules often state reasons for writing in a certain way. </p> <p><a href="http://david.tribble.com/text/cdiffs.html"> Incompatibilities Between ISO C and ISO C++ </a> &nbsp; By David R. Tribble </p> <p><a href="http://www.openwatcom.org/index.php/Main_Page"> Open Watcom </a> &nbsp; Open Watcom is a project of the open source community to maintain and enhance the Watcom C, C++, and Fortran cross compilers and tools. Links to excellent resources. </p> <p><a href="http://www.gotw.ca/publications/c_family_interview.htm"> The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling </a> &nbsp; Unfortunately and surprisingly, Objective-C is not mentioned at all.</p> </div></div> <div id="onlinebooks"><span class="Subhead2"> Online books </span> <div class="Tab5"> <p><a href="http://publications.gbdirect.co.uk/c_book/"> The C Book </a> &nbsp; by Mike Banahan, Declan Brady and Mark Doran. Originally published by Addison Wesley in 1991. This version is made freely available. This is not a tutorial introduction to programming. The book is designed for programmers who already have some experience of using a modern high-level procedural programming language. </p> <p><a href="http://books.google.com/books?id=4Mfe4sAMFUYC&amp;pg=PA501&amp;dq=gnu+c&amp;lr=&amp;as_brr=0&amp;sig=afDrAWJbu9TY9y28Cg9ldNeSrbM"> C in a Nutshell </a> &nbsp; by Peter Printz and Tony Crawford. From Google Book Search; limited preview. </p> <p><a href="http://lonestar.texas.net/~tvf/SAFARI%2001--C%20Primer%20Plus--Fifth%20Edition-Into%20through%20Chapter%20Six--202%20Pgs.pdf"> C Primer Plus, Fifth Edition </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; by Stgephen A. Prata. Introduction through chapter 6 of the 5th edition of the book published by Sams Publishing in 2004, ISBN 0-672-32696-5. Covers the 1999 ISO/ANSI standard. </p> <p><a href="http://burks.brighton.ac.uk/burks/pcinfo/progdocs/cppcrit/"> C++?? : A Critique of C++ (3rd Ed.) and Programming and Language Trends of the 1990s </a> By Ian Joyner. The C++?? Critique is an analysis of some of the flaws of C++. It is by no means exhaustive, nor does it attempt to document every little niggle with C++, rather concentrating on main themes. The critique uses Java and Eiffel as comparisons to C++ to give a more concrete feel to the criticisms, viewing conceptual differences rather than syntactic ones as being more important. The C++ critique comes to the conclusion that these pitfalls are not acceptable, and should not be in a language used for modern large scale software engineering. The critique also takes a look at C, and concludes that many of the features of C should be left out of modern languages, and that C is a flawed base for a language. </p> <p><a href="http://www.nrbook.com/a/"> Numerical Recipes in C, Second Edition </a> &nbsp; This page also has links to versions on Fortran 77 and Fortran 90. This is the <a href="http://www.nrbook.com/a/bookcpdf.php"> PDF Edition</a>. And this the <a href="http://www.cs.helsinki.fi/u/tvvlappi/muuta/Numerical_Recipes/bookc.html"> Postscript edition</a>. </p> <p><a href="http://www.duckware.com/bugfreec/index.html"> Writing Bug-Free C Code </a> &nbsp; by Jerry Jongerius. This book describes an alternate class methodology that provides complete data hiding and fault-tolerant run-time type checking of objects in C programs. With it, you will produce code that contains fewer bugs. </p> <p><a href="http://www.cs.brown.edu/courses/cs190/2005/wsc/Writing%20Solid%20Code.pdf"> Writing Solid Code </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; Microsoft's Techniques for Developing Bug-Free C Programs. By Steve Maguire. Excellent advice, but outdated. </p> </div></div> <div id="security"><span class="Subhead2"> Security </span> <div class="Tab5"> <p><a href="http://www.securecoding.org/companion/links.php"> Resources - Web Companion </a> &nbsp; From securitycoding.org. A document is adapted (with permission) from the appendix in Secure Coding: Principles and Practices. It contains a list of the books, papers, articles, and web sites that have inspired us and served as sources for this book. </p> <p><a href="http://www.plumhall.com/sscc.html"> SSCC: The Plum Hall Safe-Secure C/C++ Project </a> &nbsp; Interesting background; useful links. </p> <p><a href="http://www.drdobbs.com/cpp/219501214"> Secure Coding in C and C++ </a> &nbsp; By Robert Seacord. DJJ article. </p> <p><a href="http://www.irccrew.org/~cras/security/howto/"> Secure C Programming </a> &nbsp; From IRCcrew. Work in progress; pages missing. </p> <p><a href="http://developers.sun.com/solaris/articles/secure.html"> Secure C Programming </a> &nbsp; Rich Teer, Sun Developer Network </p> <p><a href="http://www.sei.cmu.edu/library/abstracts/news-at-sei/feature120061.cfm"> Secure Coding in C and C++: C-Style Strings </a> &nbsp; By Robert C. Seacord, SEI </p> <p><a href="http://www.irccrew.org/~cras/security/c-guide.html"> Secure, Efficient and Easy C programming </a> &nbsp; By Timo Sirainen </p> <p><a href="http://www.drdobbs.com/cpp/184402075"> Validating C and C++ for Safety and Security </a> &nbsp; By Robert Seacord. DJJ article. </p> <p><a href="http://www.cprogramming.com/tutorial/secure.html"> Writing secure code </a> &nbsp; Instructions on C coding to prevent buffer overflows double-free attack. From <a href="http://www.cprogramming.com/">Cprogramming.com</a>.</p> </div></div> <div id="stl"><span class="Subhead2"> Standard Template Library </span> <div class="Tab5"> <p><a href="http://stdcxx.apache.org/"> Apache C++ Standard Library (STDCXX) </a> &nbsp; The Apache C++ Standard Library project is a collection of algorithms, containers, iterators, and other fundamental components of every piece of software, implemented as C++ classes, templates, and functions essential for writing C++ programs. The goal of the Apache C++ Standard Library is to provide a free implementation of the ISO/IEC 14882 international standard for C++ that enables source code portability and consistent behavior of programs across all major hardware implementations, operating systems, and compilers, open source and commercial alike. An additional goal is to achieve maximum implementation efficiency on each platform by taking advantage of platform-specific high-performance facilities and features which are often unique to the type of hardware, the operating system or the compiler. </p> <p><a href="http://www.josuttis.com/libbook/idx.html"> code examples </a> &nbsp; <img src="../Images/stars4.gif" alt="Rank4" /> &nbsp; &nbsp; of the book <span class="InlineTitle">The C++ Standard Library - A Tutorial and Reference</span> by Nicolai M. Josuttis. </p> <p><a href="http://www.cs.rpi.edu/projects/STL/stl/stl.html"> Standard Template Library </a> &nbsp; Online reference home page. </p> <p><a href="http://www.sgi.com/tech/stl/"> Standard Template Library Programmer's Guide </a> &nbsp; A freely available implementation of the C++ Standard Template Library, including documentation. </p> <p><a href="http://www.cs.rpi.edu/projects/STL/stl/node13.html#stldatasheets"> STL Algorithms datasheet </a> &nbsp; Contains data sheets describing all of the generic algorithms of STL, including source code and examples of use. Unfortunately, you can only access souce code if you have special authorization. </p> <p><a href="http://www.mochima.com/tutorials/STL.html"> An Introduction to the Standard Template Library (STL) </a> &nbsp; </p> </div></div> <div id="tutorials"><span class="Subhead2"> Tutorials </span> <div class="Tab5"> <p><a href="http://www.network-theory.co.uk/docs/gccintro/"> An Introduction to GCC </a> &nbsp; by Brian Gough. This manual provides an introduction to the GNU C and C++ Compilers, gcc and g++. The development of this manual was funded entirely by Network Theory Ltd. Copies published by Network Theory Ltd raise money for more free documentation. </p> <p><a href="http://www.eskimo.com/~scs/cclass/cclass.html"> C Programming </a> &nbsp; The notes on these pages are for the courses in C Programming taught in the Experimental College at the University of Washington. Normally these notes accompany fairly traditional classroom lecture presentations, but they are intended to be reasonably complete and should be usable as standalone tutorials. </p> <p><a href="http://www.cplusplus.com/doc/tutorial/"> C++ Language Tutorial </a></p> <p><a href="cslibrary.stanford.edu/101/EssentialC.pdf"> Essential C </a> &nbsp; A summary of basic features of C. Appropriate for someone with some programming background in another language.</p> <p><a href="http://boredzo.org/pointers/"> Everything you need to know about pointers in C </a> &nbsp; by Peter Hosey. </p> <p><a href="http://www.newty.de/fpt/intro.html"> The Function Pointer Tutorials </a> &nbsp; by Lars Haendel </p> <p><a href="http://crasseux.com/books/ctutorial/"> The GNU C Programming Tutorial </a> &nbsp; The first edition of this book was written in 1987, then updated and rewritten in 1999. It was originally published by Dabs Press. After it went out of print, David Atherton of Dabs and the original author, Mark Burgess, agreed to release the manuscript. At the request of the Free Software Foundation, the book was further revised by Ron Hale-Evans in 2001 and 2002. </p> <p><a href="http://www.nongnu.org/c-prog-book/"> Learning GNU C </a> &nbsp; By Ciaran O'Riordan <br /> <a class="Tab3 " href="http://www.faqs.org/docs/learnc/"> Earlier version </a></p> <p><a href="http://www.pottsoft.com/home/c_course/course.html"> Phil's C Course </a> &nbsp; This course is intended to help a good programmer start programming in C, but should provide a reasonable introduction to C for people who have used any programming language before. </p> <p><a href="http://www.lysator.liu.se/c/bwk-tutor.html"> Programming in C: A Tutorial </a> &nbsp; by Brian W. Kernighan. This <i>tutorial</i> is presented as a historical document, not as a tutorial. Although it has lost little of its didactic value, it describes a language that C compilers today do no longer understand: the C of 1974, four years before Kernighan and Ritchie published the first edition of <i>The C Programming Language</i></p> <p><a href="http://pweb.netcom.com/~tjensen/ptr/cpoint.html"> Tutorial on Pointers and Arrays in C </a> &nbsp; by Ted Jensen. </p> </div></div> <div class="Quote1"> <hr class="myLine" /> I invented the term <i> Object-Oriented,</i> and I can tell you I did not have C++ in mind. <br /> -- Alan Kay <!--hr /> The main problem for the C++ community today is to use Standard C++ in the way it was intended rather than as a glorified C or a poor man's Smalltalk. <br /> - Bjarne Stroustrup, "Getting From The Past To The Future" <br /> &nbsp; &nbsp; p. 23 C++ Report, SIGS Nov/Dec 1999 Vol1 No.10 --> <hr class="myLine" /> </div> </div> <div class="MyCopyright"> <hr class="myLine" /> Copyright &copy; 2003-2012 by Edgar R. Ch&aacute;vez. All rights reserved. <hr class="myLine" /> </div> </body> </html>