Concerning the difference between using angular brackets and quotation marks, i think it has something to do with the order in which the header files are looked for : if it's between quotation marks, the compiler will first check the working directory (not very useful in the case of system headers, since they're not in the same directory as the compiler) before checking the system headers directory.