Web resources
From C
Contents |
Primary materials
How to help us, help you
- Code paste sites: http://ideone.com/ or http://codepad.org/
Stuff that should be avoided
[summarized from the main page]
- C Tutorial @ gokmen.selcuk.edu.tr.
- C Tutorial @ computer.howstuffworks.com.
- Teach Yourself C in 24 Hours @ aelinik.free.fr.
- C Language Course @ studytonight.com.
Standards
See The Standard for more informatio.
- A draft revision of C1X dated 2011-04-12 is avalible for download from the WG14 web site
- A draft revision of C9X dated 2007-09-07 is avalible for download from the WG14 web site
Getting Started
- Introductions to C
- GNU C Programming Tutorial: http://crasseux.com/books/ctutorial/
- Steve Holmes (ex-Uni Strathclyde), C Programming: http://www.strath.ac.uk/IT/Docs/Ccourse/
- C Programming class notes: http://www.eskimo.com/~scs/cclass/cclass.html
- Some good C tutorials: http://cslibrary.stanford.edu/
- An Introduction to C: http://cprog.tomsweb.net/cintro.html
- Peter Norvig explains why learning to program in 21 Days is not a realistic goal.
- C Language FAQ: http://www.c-faq.com/
- Reading C Declarations: http://www.ericgiguere.com/articles/reading-c-declarations.html
- Event-Driven Programming: http://eventdrivenpgm.sourceforge.net/
- Dictionary of Algorithms & structures: http://www.nist.gov/dads/
- Linux Unicode programming: http://www.ibm.com/developerworks/linux/library/l-linuni.html
Historic
- Programming in C: A Tutorial: http://www.lysator.liu.se/c/bwk-tutor.html
References
- C89/C90 Reference: the following links are broken: http://www-ccs.ucsd.edu/c/ [http://www-ccs.ucsd.edu/c/crit_pb.html (copyright)] [http://www-ccs.ucsd.edu/c/_index.html (index)]
- C99 Reference: http://www.open-std.org/JTC1/SC22/WG14/www/standards
- Draft of C99 with all corrigenda applied: http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
- The C Library Reference Guide: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/
- C (and other stuff) reference: http://www.nilosplace.net/C/Creference/C/mindxbdy.htm
- C89 Description: http://tkorrovi.sourceforge.net/c89.txt
Man pages
- FreeBSD:
- Mac OS X:
Secondary materials
- ISO Working group: http://www.open-std.org/jtc1/sc22/wg14/
- A summary of changes made by the 1999 Standard http://home.datacomm.ch/t_wolf/tw/c/c9x_changes.html
- Lysator Programming in C: http://www.lysator.liu.se/c/
- Solutions to K&R and some C snippets: http://uthcode.sarovar.org
- C for Smarties: http://www.torek.net/torek/c/index.html
- C of Peril: http://pldaniels.com/c-of-peril/
- The Function Pointer Tutorials: http://www.function-pointer.org
- A tutorial on pointers and arrays in C: http://pweb.netcom.com/~tjensen/ptr/pointers.htm (dead) wayback copy
- C Memory Management Tutorial: http://stoneship.org/journal/c-memory-management-and-you/
- Objects First : A First Course in Program Design using C: http://www.ee.uwa.edu.au/~roberto/teach/morris/Year1/CLP110/CLP_ToC.html
- Data Structures and Algorithms[ page in transit dec 2005 ]: http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/ds_ToC.html
- Dictionary of Algorithms and Data Structures: http://www.nist.gov/dads
- Collection of useful code: http://c.snippets.org/
- C/C++ Source Code Search Site: http://csourcesearch.net/
- Structure and Interpretation of Computer Programs, by Abelson, Sussman, and Sussman, aka Wizard Book: http://mitpress.mit.edu/sicp/
- MathWorld: http://mathworld.wolfram.com/ Mathematical resources of all sorts.
- GDB Tutorial: http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html (dead link, archived here)
- GDB Tutorial: http://www.unknownroad.com/rtfm/gdbtut/gdbtoc.html
- Style Guides: http://chris-lott.org/resources/cstyle/, FreeBSD style guidelines
- Writing secure programs:
- Ramblings - A collection of posts about C, focusing on common misconceptions: http://ramblings.implicit.net/
Programming Paradigms
- OOP Is Much Better in Theory Than in Practice
- Various Papers Critisizing OOP
- Threading is Evil (select tutorial, coroutines, how to handle concurrent I/O)
- http://threading.2038bug.com/index.html -- direct link is dead as of 2007-04-26
- Internet Archive copy
([dho] I personally think the above page is silly, confusing multiplexing, asynch, and non-blocking i/o with each other and providing only one really decent reason that threads are evil: because programmers misuse them. Apart from that, it contains very nice links to several potential alternatives.)
Beyond Standard C
- Beej's Guide to Network, aka beej: http://www.ecst.csuchico.edu/~beej/guide/net/
- The C10K Problem, has info on various techniques to handle sockets, and discusses problems when dealing with a very large number: http://www.kegel.com/c10k.html
- Predefined macros given for various combinations of platform/OS/compiler: http://predef.sourceforge.net/
Microsoft Windows
- MSDN: http://msdn.microsoft.com/
- James Brown's tutorials/code examples: http://www.catch22.net/
- theForger's Win32 API Programming Tutorial http://www.winprog.org/tutorial/
Linux, POSIX and UNIX
- Beej's Guide to IPC: http://www.ecst.csuchico.edu/~beej/guide/ipc/
- POSIX threads programming: http://www.llnl.gov/computing/tutorials/pthreads/
- SUSv3 (aka POSIX) standard: http://www.unix.org/version3/
- UNIX Programmers FAQ: dead via wayback machine
- How to create libraries/modules on Linux/*nix: http://www.tldp.org/HOWTO/Program-Library-HOWTO/
- How To Write Shared Libraries - techniques regarding ELF(used on most *nixes) shared objects: http://people.redhat.com/drepper/dsohowto.pdf
- UTF-8 and Unicode FAQ for Unix/Linux: http://www.cl.cam.ac.uk/~mgk25/unicode.html
- Porting Linux applications to 64-bit systems: http://www-128.ibm.com/developerworks/library/l-port64.html
W.Richard Stevens
- Advanced Programming in the UNIX(R) Environment, aka APUE, web site
- TCP/IP Illustrated, Volume 1: The Protocols, web site
- TCP/IP Illustrated, Volume 2: The Implementation, web site
- TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols, web site
- UNIX Network Programming, Volume 1, 2nd edition: Networking APIs: Sockets and XTI, aka UNP1, web site
- UNIX Network Programming, Volume 2, 2nd edition: Interprocess Communications, aka UNP2, web site
- UNIX Network Programming, Volume 1, 3rd edition: The Sockets Networking API, web site
Unreviewed links mentioned in the channel
- Debugging with GDB: http://www.delorie.com/gnu/docs/gdb/gdb_toc.html
- C Programming Notes: http://www.eskimo.com/~scs/cclass/notes/top.html
- POSIX threads explained, part 3 - Condition Variables: http://www-106.ibm.com/developerworks/library/l-posix3
- File System Hierarchy Standard (FHS) - Overview: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-filesystem-fhs.html
- The C Book, 2nd edition, by Banahan, Brady and Doran: http://publications.gbdirect.co.uk/c_book
- Learn the essentials of debugging: http://www-106.ibm.com/developerworks/web/library/wa-debug.html?ca=dgr-lnxw16Dbug
- Valgrind 2.2.0 - Memory Debugging and Profiling: http://www.linuxjournal.com/article/7930
- C Language Data Types - An Understandable Guide for Beginners: http://www.informit.com/articles/article.asp?p=350919
- Open Source Licenses: http://www.onlamp.com/pub/a/onlamp/2004/11/18/licenses.html
- SQLite Tutorial: http://www.linuxgazette.com/node/9663
- Journals related to Computer Science: http://www.doaj.org/ljbs?cpid=114
- Shell Programming Tutorial - Helpful for Makefiles
- Sorting -- not written in C but provides a 'feel' for how each kind of sort works. Requires browser Java functionality.
- Resources for blind programmers of C (and C++): http://www.blindprogramming.com/c.htm
- The Art of Unix Programming, aka TAOUP, by Eric S. Raymond: http://www.catb.org/~esr/writings/taoup/
- unix programming tutorials (with gnu tools) and posix help: http://users.actcom.co.il/~choo/lupg/tutorials/