Skip to main content


A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

SAS Toolkit installed

Print Friendly, PDF & Email

The SAS Toolkit has been installed on 32-bit and 64-bit servers. Hardcopy manuals are available at CISER (no electronic documentation available). SAS Support has provided the following additional information:

Basic information:

New Features / Changes / Enhancements for SAS 8:

Here is a quick summary of the changes for SAS 9; this is not yet in an
external HTML file:

Summary of SAS/TOOLKIT changes as of Version 9.1 of the SAS System

* You can no longer use XO_NVARS as the option to SAS_XOINFO to
  obtain the number of variables. You must now use XO_NUMVARS,
  and the return value is a long integer instead. (XO_NVARS used
  a pointer to a short integer). Also, for C coding, there is
  a typedef of SASNVARS that can be used instead of hardcoding
  'long'. This also impacts parsing code where SFLP returns a
  pointer to a varnum list. These are now lists of longs instead
  of lists of shorts. Note that SAS_XFFILE, SAS_XVFIND, and
  SAS_XVPUTCV are all called with varnum pointers.

* Format names are now 32 characters instead of 8. When using the
  SAS_XFNAME routine, the first argument is now treated as a
  string of length 32. The SAS_XFNAME routine will consider the
  format name terminated when it encounters the first blank,
  null terminator, or the 32nd character, whichever comes first.

* The X_STRING structure now uses an unsigned short instead of
  a signed short for maxlen and curlen. Note, however, that the
  DATA step is still limited to 32767 for the length of character
  variables. There are some other circumstances, such as macro
  processing, where the string can exceed 32K.

* SAS_XVFINDX is added to handle long varnames:

  rctype rc;
  ptr fileid;
  ptr varnamep;
  int varnamel;
  SASNVARS varnum;
  rc = SAS_XVFINDX(fileid,varnamep,varnamel,&varnum);

  The varnamep pointer refers to a variable name, with varnamel
  indicating the length of this variable name. If the rc is
  returned as 0, the varnum value is set to the located variable
  number. Compare this to SAS_XVFIND:

  rc = SAS_XVFIND(fileid,varname,&varnum);

  where varname is assumed to point to an 8-byte variable name.

looking at the diffs between V8 and V9 in the example sources:

* cengxmpl.c fills format names with sizeof(np->nform) (now 32)
  instead of a hardcoded 8.

* cexample.c uses XO_NUMVARS instead of XO_NVARS. It declares
  the receiving variable as SASNVARS.

* cfunc.c declares its routines using unsigned short * instead
  of short *.

* csimple.c is using lists of SASNVARS instead of lists of shorts.