Temat: Uniezależnianie się od systemu operacyjnego

Podczas działania programu możemy chcieć wywołać jakieś polecenie systemowe. Polecenia są jednak różne w zależności od systemu operacyjnego.

Na przykład dla systemów unixowych, aby wyczyścić ekran i wyświetlić zawartość katalogu, używamy następujących poleceń:

system("clear");
system("ls -a");

W Windowsie natomiast:

system("cls");
system("dir");

Możemy jednak uzależnić kompilację fragmentów programu od systemu operacyjnego, na przykład:

void wyczysc_ekran() {
#ifdef _WIN32
    system("cls");
#else
    system("clear");
#endif
}
void wyswietl_folder() {
#ifdef _WIN32
    system("dir");
#else
    system("ls -a");
#endif
}

Wówczas w naszym programie nie używamy już poleceń system, tylko naszych funkcji, które zostaną poprawnie skompilowane niezależnie od systemu operacyjnego:

wyczysc_ekran(); //zamiast system("cls");
wyswietl_folder(); //zamiast system("dir");