| iMatix home page
| << | < | > | >>
SFL Logo SFL
Version 2.11

 

sys_name

#include "sflsyst.h"
char *
sys_name (Bool full)

Synopsis

Returns a static buffer with the type or name of OS. If the full argument is true, tries to report the OS version information as well.

Source Code - (sflsyst.c)

{
#if (defined (__WINDOWS__))
#   if (defined (WIN32))
    static char
        name [30];

    OSVERSIONINFO
        version_info;

    if (full)
      {
        version_info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
        if (GetVersionEx (&version_info))
          {
            if (version_info.dwPlatformId == VER_PLATFORM_WIN32_NT)
                snprintf (name, sizeof (name), "Windows NT %ld.%ld",
                                              version_info.dwMajorVersion,
                                              version_info.dwMinorVersion);
            else
            if (version_info.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
                snprintf (name, sizeof (name), "Windows 95 %ld.%ld",
                                               version_info.dwMajorVersion,
                                               version_info.dwMinorVersion);
            else
                snprintf (name, sizeof (name), "Windows %ld.%ld with win32s",
                                               version_info.dwMajorVersion,
                                               version_info.dwMinorVersion);
          }
      }
    else
        strcpy (name, "Windows");

    return (name);
#   else
        return (full? "Windows 3.x": "Windows");
#   endif
#elif (defined (__UNIX__))
#   if (defined (__UTYPE_AUX))
        return ("UNIX Type: Apple AUX");
#   elif (defined (__UTYPE_DECALPHA))
        return ("UNIX Type: Digital UNIX (Alpha)");
#   elif (defined (__UTYPE_IBMAIX))
        return ("UNIX Type: IBM RS/6000 AIX");
#   elif (defined (__UTYPE_HPUX))
        return ("UNIX Type: HP/UX");
#   elif (defined (__UTYPE_LINUX))
        return ("UNIX Type: Linux");
#   elif (defined (__UTYPE_MIPS))
        return ("UNIX Type: MIPS");
#   elif (defined (__UTYPE_NETBSD))
        return ("UNIX Type: NetBSD");
#   elif (defined (__UTYPE_NEXT))
        return ("UNIX Type: NeXT");
#   elif (defined (__UTYPE_SCO))
        return ("UNIX Type: SCO UNIX");
#   elif (defined (__UTYPE_IRIX))
        return ("UNIX Type: Silicon Graphics IRIX");
#   elif (defined (__UTYPE_SUNOS))
        return ("UNIX Type: SunOS");
#   elif (defined (__UTYPE_SUNSOLARIS))
        return ("UNIX Type: Sun Solaris");
#   elif (defined (__UTYPE_UNIXWARE))
        return ("UNIX Type: SCO UNIXWare");
#   else
        return ("UNIX Type: Generic");
#   endif
#elif (defined (__VMS__))
    return ("UNIX Type: Digital OpenVMS");
#elif (defined (__OS2__))
    return ("UNIX Type: IBM OS/2");
#elif (defined (__MSDOS__))
    return ("MS-DOS");
#else
    return ("Unknown");
#endif
}

| << | < | > | >> iMatix Copyright © 1996-2000 iMatix Corporation