00001 /* 00002 ***************************************************************** 00003 * endian test 00004 * 00005 * G_is_little_endian () 00006 * 00007 * Test if machine is little or big endian (required for file coding) 00008 * 00009 * Returns: 1 little endian 00010 * 0 big endian 00011 * 00012 * This endian test was taken from ./src.contrib/GMSL/NVIZ2.2/TOGL/apps/image.c 00013 * Markus Neteler 00014 * neteler geog.uni-hannover.de 00015 */ 00016 00017 00029 int G_is_little_endian (void) 00030 { 00031 union 00032 { 00033 int testWord; 00034 char testByte[sizeof(int)]; 00035 } endianTest; 00036 00037 int swapFlag; 00038 00039 endianTest.testWord = 1; 00040 00041 if (endianTest.testByte[0] == 1) 00042 { 00043 swapFlag = 1; /*true: little endian */ 00044 } 00045 else 00046 { 00047 swapFlag = 0; /* false: big endian */ 00048 } 00049 return swapFlag; 00050 }