Linux is an operating system, not a language.

If you just stick to the standard libraries of C and C++, then there is no difference at all between writing a Windows program and writing a Linux program. All things being equal, you just take your source code and recompile it on the other OS and you're done.

The OS proper is specified in large part by POSIX (see POSIX - Wikipedia )
But there are a multitude of operating systems that support POSIX.

For Linux, you can find all the details here -> The Linux man-pages project (it's pretty much the equivalent of MSDN).

Take for example getpid() getpid(2) - Linux manual page
If you want to know how well supported the function is, then scroll down to the "CONFORMING TO" section of the manual page.

Something more esoteric like getxattr(2) - Linux manual page is specific to Linux.