Any line that starts with '#' is a "preprocessor directive" . This particular one sounds like what is called a "header guard" or an "inclusion guard". It should be immediately followed by something along the lines of
#define _GLIBCXX_IOSTREAM 1
. At the end of the file, there should also be a statement similar to this:
#endif /* _GLIBCXX_IOSTREAM */
This statement ends the statement block created by the #ifndef.
The #ifndef statement checks to see "if _GLIBCXX_IOSTREAM is NOT defined". If it finds that it is NOT defined, it returns true and executes the statements contained within its statement block. The next statement, #defines _GLIBCXX_IOSTREAM. As a result, _GLIBCXX_IOSTREAM now is defined. This causes #ifndef _GLIBCXX_IOSTREAM to come false if is #included again so that it doesn't double up the #include. Here is more C++ - Specific preprocessor information.
This combination of statements is used to prevent the header being included in the code more than once which can cause compilation and linking issues.