Platform independent endinanness check:
#include <stdio.h>
union foo
{
char p[4];
int k;
};
int main()
{
int j;
union foo bar;
printf("$Id: endianness.c,v 1.1 2006/07/09 17:48:14 stany Exp stany $nChecks endianness of your platformn");
printf("Bigendian platform (ie Mac OS X PPC) would return "abcd"n");
printf("Littleendian platform (ie Linux x86) would return "dcba"n");
printf("Your platform returned ");
bar.k = 0x61626364;
for(j=0; j<4 ; j++)
{
printf("%c",bar.p[j]);
}
printf("n");
return 0;
}
Platform dependent tell me everything check:
/*
* $Id: cpuid.c,v 1.2 2002/08/03 23:38:39 stany Exp stany $
*/
#include <mach-o/arch.h>
#include <stdio.h>
const char *byte_order_strings[] = {
"Unknown",
"Little Endian",
"Big Endian",
};
int main() {
const NXArchInfo *p=NXGetLocalArchInfo();
printf("$Id: cpuid.c,v 1.2 2002/08/03 23:38:39 stany Exp stany $ n");
printf("Identifies Darwin CPU typen");
printf("Name: %sn", p->name);
printf("Description: %sn", p->description);
printf("ByteOrder: %sn", byte_order_strings[p->byteorder]);
printf("CPUtype: %dn", p->cputype);
printf("CPUSubtype: %dnn", p->cpusubtype);
printf("nFor scary explanation of what CPUSubtype and CPUtype stand for, nlook into /usr/include/mach/machine.hnn
ppc750t-tG3nppc7400t-tslower G4nppc7450t-tfaster G4nppc970t-tG5n");
return 0;