How to detect Operating System through a C program

19 Jul, 2020
One can find out the operating system on which the program is running with the help of C programming. This piece of information is very useful for the case where we want to build platform independent program. To find the OS (Operating System) we check out the macro defined by the compiler, for example windows with 32-bit OS has “_WIN32” as macro so if the macro is defined then the system we are working on is windows with 32-bit operating system. Similarly other OS has different macro defined. The list of macro for some popular OS are as follows:
Note:
It must be noted that the macros are valid for GNU GCC and G++ and may vary for other compilers.
Below is the program to detect which OS we are working on:
C
// C program to detect Operating System  #include <stdio.h>  // Driver Codeint main(){  // Checking for windows OS with// _WIN32 macro#ifdef _WIN32    printf("Hey Geek it seems that"           "you are working on a Windows OS.\n");  // Checking for mac OS with// __APPLE__ macro#elif __APPLE__    printf("Hey Geek it seems that you"           "are working on a Mac OS.\n");  // Checking for linux OS with// __linux__ macro#elif __linux__    printf("Hey Geek it seems that you"           "are working on a Linux OS.\n");  // Checking for iOS embedded OS with// TARGET_OS_EMBEDDED macro#elif TARGET_OS_EMBEDDED    printf("Hey Geek it seems that you"           "are working on an iOS embedded OS.\n");  // Checking for iOS simulator OS with// TARGET_IPHONE_SIMULATOR macro#elif TARGET_IPHONE_SIMULATOR    printf("Hey Geek it seems that you"           "are working on an iOS simulator OS.\n");  // Checking for iPhone OS with// TARGET_OS_IPHONE macro#elif TARGET_OS_IPHONE    printf("Hey Geek it seems that you"           "are working on an iPhone OS.\n");  // Checking for MAC OS with// TARGET_OS_MAC macro#elif TARGET_OS_MAC    printf("Hey Geek it seems that you"           "are working on a MAC OS.\n");  // Checking for Android OS with// __ANDROID__ macro#elif__ANDROID__    printf("Hey Geek it seems that you"           "are working on an android OS.\n");  // Checking for unix OS with// __unix__ macro#elif __unix__    printf("Hey Geek it seems that you"           "are working on a unix OS.\n");  // Checking for POSIX based OS with// _POSIX_VERSION macro#elif _POSIX_VERSION    printf("Hey Geek it seems that you"           "are working on a POSIX based OS.\n");  // Checking for Solaris OS with// __sun macro#elif __sun    printf("Hey Geek it seems that you"           "are working on a Solaris OS.\n");  // Checking for HP UX OS with// __hpux macro#elif __hpux    printf("Hey Geek it seems that you"           "are working on a HP UX OS.\n");  // Checking for BSD OS with// BSD macro#elif BSD    printf("Hey Geek it seems that you"           "are working on a Solaris OS.\n");  // Checking for DragonFly BSD OS with// __DragonFly__ macro#elif __DragonFly__    printf("Hey Geek it seems that you"           "are working on a DragonFly BSD OS.\n");  // Checking for FreeBSD OS with// __FreeBSD__ macro#elif __FreeBSD__    printf("Hey Geek it seems that you"           "are working on a FreeBSD OS.\n");  // Checking for Net BSD OS with// __NetBSD__ macro#elif __NetBSD__    printf("Hey Geek it seems that you"           "are working on a Net BSD OS.\n");  // Checking for Open BSD OS with// __OpenBSD__ macro#elif __OpenBSD__    printf("Hey Geek it seems that you"           "are working on an Open BSD OS.\n");  // If neither of them is present// then this is printed...#else    printf("Sorry, the system are"           "not listed above.\n");#endif    return 0;}
Similarly one can find out the operating system and can set the appropriate code for the system
C Macro
C Programs
Operating Systems
Operating Systems
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C Program to read contents of Whole File
Producer Consumer Problem in C
Difference between break and continue statement in C
C Hello World Program
C program to find the length of a string
Types of Operating Systems
Banker's Algorithm in Operating System
Page Replacement Algorithms in Operating Systems
Disk Scheduling Algorithms
Introduction of Deadlock in Operating System