title: How can I determine if the operating system is POSIX in C?
body: <blockquote>
    <p><strong>Related questions</strong><br>
    <a href="https://stackoverflow.com/questions/430424/how-can-i-detect-the-operating-system-in-c-c">How can I detect the operating system in C/C++?</a></p>
  </blockquote>
  
  <p>How can I find out what operating system I am running under in GCC or in ANSI C?</p>
  
  <p>I'd be fine If I can know if I'm running on POSIX.</p>
  
  <hr>
  
  <p>UPDATE:</p>
  
  <p>It doesn't make a difference to me whether it is at compile time or run time. I'm using this in a debug routine, so performance isn't that important. </p>
  
  <p>I'm looking for the path separator. Windows &amp; Unix/Linux/BSD would be fine.  </p>
  
  <p>And, I'm trying to find the basename on a path.  I found some solutions, but the solutions include a lot of includes which I do not want. I'm going to mod up <a href="http://www.koders.com/c/fidEB79B7607A210C3BB7B813E793465F9D469AE912.aspx" rel="noreferrer">this solution</a>.</p>
  
  <hr>
  
  <p>I'm on Mac OS X 10.4.11, and following <a href="http://bytes.com/topic/c/answers/215864-determine-os-compiler" rel="noreferrer">this URL</a>, I executed and got the following output:</p>
  
  <pre><code>mac $ touch myfile.c
  mac $ gcc -std=c99 -E -dM myfile.c
  #define __DBL_MIN_EXP__ (-1021)
  #define __FLT_MIN__ 1.17549435e-38F
  #define __CHAR_BIT__ 8
  #define __WCHAR_MAX__ 2147483647
  #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
  #define __FLT_EVAL_METHOD__ 0
  #define __DBL_MIN_10_EXP__ (-307)
  #define __FINITE_MATH_ONLY__ 0
  #define __GNUC_PATCHLEVEL__ 1
  #define __SHRT_MAX__ 32767
  #define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L
  #define __APPLE_CC__ 5367
  #define __UINTMAX_TYPE__ long long unsigned int
  #define __LDBL_MAX_EXP__ 1024
  #define __SCHAR_MAX__ 127
  #define __USER_LABEL_PREFIX__ _
  #define __STDC_HOSTED__ 1
  #define __LDBL_HAS_INFINITY__ 1
  #define __DBL_DIG__ 15
  #define __FLT_EPSILON__ 1.19209290e-7F
  #define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L
  #define __ppc__ 1
  #define __strong 
  #define __APPLE__ 1
  #define __DECIMAL_DIG__ 33
  #define __LDBL_HAS_QUIET_NAN__ 1
  #define __DYNAMIC__ 1
  #define __GNUC__ 4
  #define __DBL_MAX__ 1.7976931348623157e+308
  #define __DBL_HAS_INFINITY__ 1
  #define __STRICT_ANSI__ 1
  #define __weak 
  #define __DBL_MAX_EXP__ 1024
  #define __LONG_LONG_MAX__ 9223372036854775807LL
  #define __GXX_ABI_VERSION 1002
  #define __FLT_MIN_EXP__ (-125)
  #define __DBL_MIN__ 2.2250738585072014e-308
  #define __DBL_HAS_QUIET_NAN__ 1
  #define __REGISTER_PREFIX__ 
  #define __NO_INLINE__ 1
  #define _ARCH_PPC 1
  #define __FLT_MANT_DIG__ 24
  #define __VERSION__ "4.0.1 (Apple Computer, Inc. build 5367)"
  #define __BIG_ENDIAN__ 1
  #define __SIZE_TYPE__ long unsigned int
  #define __FLT_RADIX__ 2
  #define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L
  #define __NATURAL_ALIGNMENT__ 1
  #define __FLT_HAS_QUIET_NAN__ 1
  #define __FLT_MAX_10_EXP__ 38
  #define __LONG_MAX__ 2147483647L
  #define __FLT_HAS_INFINITY__ 1
  #define __STDC_VERSION__ 199901L
  #define _BIG_ENDIAN 1
  #define __LDBL_MANT_DIG__ 106
  #define __WCHAR_TYPE__ int
  #define __FLT_DIG__ 6
  #define __INT_MAX__ 2147483647
  #define __LONG_DOUBLE_128__ 1
  #define __FLT_MAX_EXP__ 128
  #define __DBL_MANT_DIG__ 53
  #define __WINT_TYPE__ int
  #define __LDBL_MIN_EXP__ (-968)
  #define __MACH__ 1
  #define __LDBL_MAX_10_EXP__ 308
  #define __DBL_EPSILON__ 2.2204460492503131e-16
  #define __INTMAX_MAX__ 9223372036854775807LL
  #define __FLT_DENORM_MIN__ 1.40129846e-45F
  #define __PIC__ 1
  #define __FLT_MAX__ 3.40282347e+38F
  #define __FLT_MIN_10_EXP__ (-37)
  #define __INTMAX_TYPE__ long long int
  #define __GNUC_MINOR__ 0
  #define __DBL_MAX_10_EXP__ 308
  #define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L
  #define __PTRDIFF_TYPE__ int
  #define __LDBL_MIN_10_EXP__ (-291)
  #define __LDBL_DIG__ 31
  #define __POWERPC__ 1
  mac $
  </code></pre>