Is there anyway from a C prog to find whether the OS is currently running in 32bit or 64bit mode. I am using a simple program as below
int main(void){
switch(sizeof(void*)){
case 4: printf("32\n");
break;
case 8: printf("64\n");
break;
}
}
Is this a correct approach ?
Would this code work in all the scenarios like, If the hardware is 64bit and the OS is 32bit what would it return ? I don’t have machine to test this in diff configurations.
Thanks for the advice.
In general, a 32 bits executable won’t be able to tell if it is running under a 64 bit OS or a 32 bit one (some OS could have a way to tell, I know of none but I haven’t searched), a 64 bit executable won’t run under a 32 bit OS (if you discount the possibility for the 32 bits OS to emulate a processor running a 64 bits OS…)
sizeof() result is mainly a compile time constant, it won’t returns something different depending on the OS version it is running under.
What do you want to know really?