Da un po' di tempo mi interesso alla programmazione multipiattaforma per Win32 e Linux (non in Java o in .net/mono) e ho trovato questo

www.html

Come funziona la definizione delle variabili linux e win32?

E' una cosa definita dal sistema operativo in maniera trasparente per il programmatore o bisogna prelevare una qualche variabile d'ambiente?
Per le varie distribuzioni di Linux è sempre valido 'linux'? e per le varie versioni di windows?