endian.c

Go to the documentation of this file.
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[4];
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 }

Generated on Mon Jan 1 19:49:25 2007 for GRASS by  doxygen 1.5.1