On 28 December 2011 20:23, Matthew D. Gutchess wrote: > Hi, > I am running Ubuntu-64 version 11.04 and teaching myself C++ by modifying, compiling and running sample programs. > (1) Ubuntu / Unix came with multiple, different stdio.h files. There are no manual pages for stdio.h. Without specifying otherwise the first stdio.h will be used, correct? When should the other various versions be used? > matt@ComputaBeauta15:~/C-Programs/EXAMPLES$ locate /stdio.h > /usr/include/stdio.h This is what gets included when you say #include <stdio.h> > /usr/include/bits/stdio.h This is probably included by <stdio.h>, you should not include it yourself, it's an implementation detail not meant for you to know or care about. > /usr/include/c++/4.5/tr1/stdio.h That will be used if you #include <tr1/stdio.h> TR1 is a report by the ISO C++ committee defining a set of extensions to the C++ library. It specified additions to <stdio.h>, for GCC's implementation of TR1 you need to include <tr1/stdio.h> to use those extensions, which will include <stdio.h> and also define the extensions. Unless you want to use the TR1 features you don't need to care about this either. > /usr/lib/syslinux/com32/include/stdio.h This is a Linux kernel header, used when building kernel modules which need <stdio.h> but can't rely on the C library being present. You probably don't need to know about it. In short, all you need to do is just #include <stdio.h>, which will do the right thing, which in your case is to include /usr/include/stdio.h