.Platform                package:base                R Documentation

_P_l_a_t_f_o_r_m _S_p_e_c_i_f_i_c _V_a_r_i_a_b_l_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     '.Platform' is a list with some details of the platform under
     which R was built.  This provides means to write OS-portable R
     code.

_U_s_a_g_e:

     .Platform

_V_a_l_u_e:

     A list with at least the following components:

 OS.type: character, giving the *O*perating *S*ystem (family) of the
          computer.  One of '"unix"' or '"windows"'. 

file.sep: character, giving the *file* *sep*arator used on your
          platform: '"/"' on both Unix-alikes _and_ on Windows (but not
          on the now abandoned port to Classic MacOS). 

dynlib.ext: character, giving the file name *ext*ension of
          *dyn*amically loadable *lib*raries, e.g., '".dll"' on Windows
          and '".so"' or '".sl"' on Unix-alikes.  (Note for MacOS X
          users: these are shared objects as loaded by 'dyn.load' and
          not dylibs.) 

     GUI: character, giving the type of GUI in use, or '"unknown"' if
          no GUI can be assumed. 

  endian: character, '"big"' or '"little"', giving the endianness of
          the processor in use.  This is relevant when it is necessary
          to know the order to read/write bytes of e.g. an integer or
          double from/to a connection: see 'readBin'.  

 pkgType: character, the preferred setting for 'options("pkgType")'.
          Values '"source"', '"mac.binary"' and '"win.binary"' are
          currently in use. 

path.sep: character, giving the *path* *sep*arator, used on your
          platform, e.g., '":"' on Unix-alikes and '";"' on Windows. 
          Used to separate paths in variables such as 'PATH' and
          'TEXINPUTS'. 

_S_e_e _A_l_s_o:

     'R.version' and 'Sys.info' give more details about the OS.  In
     particular, 'R.version$platform' is the canonical name of the
     platform under which R was compiled.

     '.Machine' for details of the arithmetic used, and 'system' for
     invoking platform-specific system commands.

_E_x_a_m_p_l_e_s:

     ## Note: this can be done in a system-independent way by file.info()$isdir
     if(.Platform$OS.type == "unix") {
        system.test <- function(...) { system(paste("test", ...)) == 0 }
        dir.exists <- function(dir) sapply(dir, function(d)system.test("-d", d))
        dir.exists(c(R.home(), "/tmp", "~", "/NO"))# > T T T F
     }

