buenas!, estoy programando una app en c pero quisiera saber el sistema operativo donde se ejecute la app antes de comenzar, alguno ya tuvo experiencia en esto?
seria de mucha ayuda ya que google por un buen rato, de antemano gracias! :silbar:
Si compilas para Windows, pues tendrás que compilar para Windows. Si compilas para Unix, pues lo mismo. Los programas compilados rara vez podrán ser ejecutados en múltiples sistemas operativos (salvando alguna excepción, como Wine)
Por tanto, una aplicación ya compilada tiene commo destino 1 sistema operativo genralmente.
Si vas a compilar para varios, entonces puedes usar directivas del preprocesador tipo:
#ifdef _WIN32
const char* SO = "Windows";
#else
const char* SO = "Otro";
#endif
Aquí tienes una lista de macros definidos para cada sistema operativo: https://sourceforge.net/p/predef/wiki/OperatingSystems/ (https://sourceforge.net/p/predef/wiki/OperatingSystems/)
Si bien no es estándar, en la mayoría de compiladores importantes los verás definidos.
simple si es windows y el ejecutable está hecho para mac os o para linux no correrá, igual para los otros casos...
si estás en windows, tienes esto
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724429(v=vs.85).aspx (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724429(v=vs.85).aspx)
si es linux algo de esto
http://stackoverflow.com/questions/6315666/c-get-linux-distribution-name-version (http://stackoverflow.com/questions/6315666/c-get-linux-distribution-name-version)