Ver Mensaje Individual
  #2  
Antiguo 11-09-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que POSIX define una función para ello, pero únicamente te serviría para sistemas POSIX o cercanos a él (UNIX, GNU/Linux, AIX, QNX, MacOS, BeOS...).

Una alternativa que sí tienen todos los compiladores de C/C++ son las directivas de identificación. Por ejemplo:
Código:
char* NombreSO (void)
{
#ifdef DOS
  return "DOS"
#endif
#ifdef OS2
  return "OS/2 (o eCom Station)";
#endif
#ifdef WIN16
  return "DOS + Windows 3.x";
#endif
#ifdef WIN32
  #ifdef WINXP
    return "Windows XP";
  #endif
  #ifdef WINNT
    return "Windows NT";
  #endif
  return "Windows 95/98";
#endif
#if defined(COCOA) || defined(DARWIN)
  return "MacOS X";
#endif
#ifdef BSD
  #ifdef FREE_BSD
    return "freeBSD";
  #endif
  return "BSD";
#endif
#ifdef LINUX
  return "GNU/Linux";
#endif
}
Bueno, más o menos porque los nombres de las macros las he puesto de memoria y no sé si son los correctos. En los manuales de los compiladores incluyen una lista de las directivas definidas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita