Saber que SO tiene la maquina a trabajar

Iniciado por Why Aret, 8 Marzo 2017, 23:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Why Aret

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:

ivancea96

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/

Si bien no es estándar, en la mayoría de compiladores importantes los verás definidos.

engel lex

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

si es linux algo de esto
http://stackoverflow.com/questions/6315666/c-get-linux-distribution-name-version

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.