SAS/C® Library Reference
Volume 1
Release 6.00
Using This Book
Chapter 1:
Introduction to the SAS/C® Library
Commonly Used Functions
Special Features
Compatibility with Standards
ISO/ANSI C Standards
Traditional UNIX Support
POSIX Standards
Rules for Using Different Releases of the Compiler and Library
Library Header Files
Header File Organization
The errno Variable
More Exact Error Information: _msgno Variable
System Macro Information
Definitions: <lcdef.h>
Implementation of Functions
Built-in Functions and Macros
Chapter 2:
Function Categories
Introduction
Character Type Macros and Functions
String Utility Functions
Terms Used in String Function Descriptions
Optimizing Your Use of memcmp, memcpy, and memset
Getting the Most Efficient Code
Mathematical Functions
Varying-Length Argument List Functions
General Utility Functions
Program Control Functions
Memory Allocation Functions
Diagnostic Control Functions
Timing Functions
I/O Functions
File Management Functions
System Interface and Environment Variables
Signal-Handling Functions
Chapter 3:
I/O Functions
Introduction
Technical Background
Traditional C (UNIX) I/O Concepts
UNIX Low-Level I/O
ISO/ANSI C I/O Concepts
IBM 370 I/O Concepts
SAS/C I/O Concepts
370 Perspectives on SAS/C Library I/O
Choosing I/O Techniques and File Organization
Technical Summaries
Standard I/O Overview
UNIX Style I/O Overview
Opening Files
File Positioning
Terminal I/O
Using the OpenEdition Hierarchical File System
OpenEdition I/O Considerations
stdin, stdout, and stderr
I/O Error and Interrupt Handling
Augmented Standard I/O
Advanced MVS I/O Facilities
Advanced CMS I/O Facilities
Using VSAM Files
SAS/C I/O Questions and Answers
Chapter 4:
Environment Variables
The Environment Variable Concept
CMS Global Variables
SAS/C Environment Variables
OpenEdition Considerations
Environment Variables under CMS
Environment Variables under TSO
TSO Technical Notes for Environment Variables
Accessing the Environment Variable File
Environment Variable File Format
Environment Variable Implementation
Environment Variables under MVS Batch
Environment Variables under CICS
Environment Variable Implementation
Scope and Size of CICS Environment Variables
SAS/C Supplied Transactions to Inspect and Modify Environment Variables
Chapter 5:
Signal-Handling Functions
Introduction
Terminology Used in Signal Handling
Types of Signal Support
SAS/C Library
OpenEdition and POSIX
Supported Signals
Choosing Signal Support Using oesigsetup
Error Signals with Flexible Handling
Non-Error Signals with Flexible Handling
Handling Signals
Using signal
Using sigaction
ABEND Handling
Getting More Information about a Signal
Default Signal Handling
Ignoring Signals
Generating Signals
Discovering Asynchronous Signals
Delaying Discovery of Signals
Waiting for Signals
Blocking Signals
Using sigprocmask
Using sigblock, sigsetmask, and sigpause
Using Signal Blocking
Using Signals Portably
Using Signals Reliably
Signal Descriptions
SIGABND -- Program Abnormal Termination
SIGABRT -- Program Abort
SIGALRM -- Real-Time Expiration
SIGFPDIV -- Floating-Point Division by 0
SIGFPE -- General Computational Error
SIGFPOFL -- Floating-Point Overflow
SIGFPUFL -- Floating-Point Underflow
SIGIDIV -- Integer Division by 0
SIGILL -- Illegal Instruction
SIGINT -- Interactive Terminal Attention Signal
SIGIUCV -- CMS Inter-User Communication
SIGMEM -- No Memory Available for Stack Space
SIGSEGV -- Memory Access Violation
SIGTERM -- Termination Request
Chapter 6:
Function Descriptions
Introduction
Functions
abend - Abnormally Terminate Execution Using ABEND
abort - Abnormally Terminate Execution
abs - Integer Conversion: Absolute Value
access - Test for File Existence and Access Privileges
_access - Test for HFS File Existence and Access Privileges
acos - Compute the Trigonometric Arc Cosine
afflush - Flush File Buffers to Disk
afopen - Open a File with System-Dependent Options
afread - Read a Record
afread0 - Read a Record (Possibly Length 0)
afreadh - Read Part of a Record
afreopen - Reopen a File with System-Dependent Options
afwrite - Write a Record
afwrite0 - Write a Record (possibly length 0)
afwriteh - Write Part of a Record
alarm, alarmd - Request a Signal after a Real-Time Interval
aopen - Open a UNIX-Style File for I/O with Amparms
asctime - Convert Time Structure to Character String
asin - Compute the Trigonometric Arc Sine
assert - Put Diagnostics into Programs
atan - Compute the Trigonometric Arc Tangent
atan2 - Compute the Trigonometric Arc Tangent of a Quotient
atexit - Register Program Cleanup Function
atof - Convert a String to Floating Point
atoi - Convert a String to Integer
atol - Convert a String to Long
blkjmp - Intercept Nonlocal gotos
bsearch - Perform a Binary Search
btrace - Generate a Traceback
calloc - Allocate and Clear Memory
ceil - Round Up a Floating-Point Number
chdir - Change Directory
chmod - Change Directory or File Mode
clearenv - Delete Environment Variables
clearerr - Clear Error Flag
clock - Measure Program Processor Time
close - Close a File or Socket
_close - Close an HFS File
closedir - Close Directory
clrerr - Clear Error Flag and Return Status
cmsdfind - Find the First CMS Fileid That Matches a Pattern
cmsdnext - Find the Next CMS Fileid Matching a Pattern
cmsffind - Find the First CMS Fileid That Matches a Pattern
cmsfnext - Find the Next CMS Fileid Matching a Pattern
cmsfquit - Release Data Held by cmsffind
cmsstat - Fill in a Structure with Information about a File
cos - Compute the Trigonometric Cosine
cosh - Compute the Hyperbolic Cosine
creat - Create and Open a File for UNIX Style I/O
ctermid - Get Filename for the Terminal
ctime - Convert Local Time Value to Character String
cuserid - Get Current Userid
difftime - Compute the Difference of Two Times
div - Integer Division
dup - Duplicate File Descriptor
dup2 - Specify Duplicate File Descriptor
ecbpause - Wait for Signal
ecbsuspend - Suspend Execution Until a Signal or Post
erf - Compute the Error Function
erfc - Compute the Complementary Error Function
exit - Terminate Execution
exp - Compute the Exponential Function
fabs - Floating-Point Conversion: Absolute Value
fattr - Return File Attribute Information
fchmod - Change Directory or File Mode
fclose - Close a File
fcntl - Control Open File Descriptors
_fcntl - Control Open HFS File Descriptors
fdopen - Associate Standard I/O File with a File Descriptor
feof - Test for End of File
ferror - Test Error Flag
ffixed - Test for Fixed-Length Records
fflush - Flush Output Buffer
fgetc - Read a Character from a File
fgetpos - Store the Current File Position
fgets - Read a String from a File
fileno - Return File Number
floor - Round Down a Floating-Point Number
fmax - Find the Maximum of Two Doubles
fmin - Find the Minimum of Two Doubles
fmod - Floating-Point Conversion: Modulus
fnm - Return Filename
fopen - Open a File
fprintf - Write Formatted Output to a File
fputc - Write a Character to a File
fputs - Write a String to a File
fread - Read Items from a File
free - Free a Block of Memory
freopen - Reopen a File
frexp - Floating-Point Conversion: Fraction-Exponent Split
fscanf - Read Formatted Input from a File
fseek - Reposition a File
fsetpos - Reposition a File
fstat - Determine File Status by Descriptor
fsync - Flush UNIX style File Buffers to Disk
_fsync - Flush HFS File Buffers to Disk
ftell - Obtain the Current File Position
fterm - Terminal File Test
ftruncate - Truncate a File
fwrite - Write Items to a File
gamma - Compute the Logarithm of the Gamma Function
getc - Read a Character from a File
getchar - Read a Character from the Standard Input Stream
getcwd - Determine Working Directory Pathname
getenv - Get Value of Environment Variable
getlogin - Determine User Login Name
gets - Read a String from the Standard Input Stream
gmtime - Break Greenwich Mean Time into Components
hypot - Compute the Hypotenuse function
isalnum - Alphanumeric Character Test
isalpha - Alphabetic Character Test
isascii - ASCII Character Test
isatty - Test for Terminal File
iscics - Return CICS Environment Information
iscntrl - Control Character Test
iscsym - Test for Valid C Identifier Symbol
iscsymf - Test for Valid C Identifier Initial Symbol
isdigit - Test for Numeric Character
isebcdic - EBCDIC Character Test
isgraph - Graphic Character Test
islower - Lowercase Alphabetic Character Test
isprint - Printing Character Test
ispunct - Punctuation Test
isspace - White Space Test
isupper - Uppercase Alphabetic Character Test
isxdigit - Hexadecimal Digit Test
j0 - Bessel Function of the First Kind, Order 0
j1 - Bessel Function of the First Kind, Order 1
jn - Bessel Function of the First Kind, Order n
kdelete - Delete Current Record from Keyed File
kgetpos - Return Position Information for VSAM File
kill - Send Signal to Process
kinsert - Insert Record into Keyed File
kreplace - Replace Record in Keyed File
kretrv - Retrieve Next Record from Keyed File
ksearch - Search Keyed File for Matching Record
kseek - Reposition a Keyed Stream
ktell - Return RBA of Current Record
labs - Integer Conversion: Absolute Value
ldexp - Floating-Point Conversion: Load Exponen
_ldexp - Fast Implementation of ldexp
ldiv - Integer Conversion: Division
link - Create Link to File
localtime - Break Local Time Value into Components
log - Compute the Natural Logarithm
log10 - Compute the Common Logarithm
longjmp - Perform Nonlocal goto
lseek - Position a UNIX Style File
_lseek - Position an HFS File
lstat - Get File or Link Status
malloc - Allocate Memory
_matherr - Handle Math Function Error
max - Find the Maximum of Two Integers
memchr - Locate First Occurrence of a Character
memcmp - Compare Two Blocks of Memory
memcmpp - Compare Two Blocks of Memory with Padding
memcpy - Copy Characters
memcpyp - Copy Characters (with Padding)
memfil - Fill a Block of Memory with a Multicharacter String
memlwr - Translate a Memory Block to Lowercase
memmove - Copy Characters
memscan - Scan a Block of Memory Using a Translate Table
memscntb - Build a Translate Table for Use by memscan
memset - Fill a Block of Memory with a Single Character
memupr - Translate a Memory Block to Uppercase
memxlt - Translate a Block of Memory
min - Find the Minimum of Two Integers
mkdir - Create Directory
mkfifo - Create FIFO Special File
mktime - Generate Encoded Time Value
modf - Floating-Point Conversion: Fraction-Integer Split
oeddinfo - Use DDname to get Information about an HFS File
oesigsetup - Control Signals
onjmp - Define Target for Nonlocal goto
onjmpout - Intercept Nonlocal gotos
open - Open a File for UNIX Style I/O
_open - Open an HFS File for I/O
opendir - Open Directory
osddinfo - Use DDname to get Information about a Data Set
osdfind - Find the First MVS File or Member Matching a Pattern
osdnext - Find the Next MVS File or Member Matching a Pattern
osdquit - Terminate MVS File or Member Search
osdsinfo - Obtain Information about a Data Set by DSname
oslink - Call an MVS Utility Program
palloc - Allocate an Element from a Storage Pool
pause - Suspend Execution until a Signal Is Received
pclose - Close Pipe I/O To a Process
pdel - Delete a Storage Pool
pdset - Packed Decimal Conversion: Double to Packed Decimal
pdval - Packed Decimal Conversion: Packed Decimal to Double
perror - Write Diagnostic Message
pfree - Return an Allocated Element to a Storage Pool
pipe - Create Unnamed Pipe
pool - Allocate a Storage Pool
popen - Open Pipe I/O to a Shell Command
pow - Compute the Value of the Power Function
printf - Write Formatted Output to the Standard Output Stream
putc - Write a Character to a File
putchar - Write a Character to the Standard Output Stream
putenv - Modify or Define Environment Variable
puts - Write a String to the Standard Output Stream
qsort - Sort an Array of Elements
quiet - Control Library Diagnostic Output
raise - Generate an Artificial Signal
rand - Simple Random Number Generation
read - Read Data from a File or a Socket
_read - Read Data from an HFS File
readdir - Read Directory Entry
readlink - Read Symbolic Link
realloc - Change the Size of an Allocated Memory Block
remove - Delete a File
rename - Rename a Disk File
_rename - Rename an HFS File
rewind - Position to Start of File
rewinddir - Rewind Directory Stream
rmdir - Remove Directory
sbrk - UNIX Low-Level Memory Allocation
scanf - Read Formatted Data from the Standard Input Stream
setbuf - Change Stream Buffering
setenv - Assign Environment Variable
setjmp - Define Label for Nonlocal goto
setvbuf - Change Stream Buffering
sfsstat - Return Information about a CMS Shared File System File or Directory
sigaction - Define a Signal-Handling Action
sigaddset, sigdelset, sigemptyset, sigfillset, sigismember - Modify the Signals in a Set of Signals
sigblock - Inhibit Discovery of Asynchronous Signals
sigchk - Check for Asynchronous Signals
siggen - Generate an Artificial Signal with Additional Information
siginfo - Obtain Information about a Signal
siglongjmp - Restore Stack Environment and Signal Mask
signal - Define Program Signal Handling
sigpause - Suspend Execution and Control Blocking of Signals
sigpending - Return Pending Signals
sigprocmask - Modify a Program's Signal Mask
sigsetjmp - Save Stack Environment and Signal Mask
sigsetmask - Inhibit or Permit Discovery of Signals
sigsuspend - Replace Signal Mask and Suspend Execution
sin - Compute the Trigonometric Sine
sinh - Compute the Hyperbolic Sine
sleep, sleepd - Suspend Execution for a Period of Time
snprintf - Write a Limited Portion of Formatted Output to a String
sprintf - Write Formatted Output to a String
sqrt - Compute the Square Root
srand - Initialize Random Number Generator
sscanf - Read Formatted Data from a String
stat - Determine File Status by Pathname
stcpm - Unanchored Pattern Match
stcpma - Anchored Pattern Match
strcat - Concatenate Two Null-Terminated Strings
strchr - Locate First Occurrence of a Character in a String
strcmp - Compare Two Null-Terminated Strings
strcpy - Copy a Null-Terminated String
strcspn - Locate the First Occurrence of the First Character in a Set
strerror - Map Error Number to a Message String
strftime - Convert Time to String
strlen - Compute Length of Null-Terminated String
strlwr - Convert a String from Uppercase to Lowercase
strncat - Concatenate Two Null-Terminated Strings (Limited)
strncmp - Compare Portions of Two Strings
strncpy - Copy a Limited Portion of a Null-Terminated String
strpbrk - Find First Occurrence of Character of Set in String
strrchr - Locate the Last Occurrence of a Character in a String
strrcspn - Locate the Last Character in a Set
strrspn - Locate the Last Character of a Search Set Not in a Given Set
strsave - Allocate a Copy of a Character String
strscan - Scan a String Using a Translate Table
strscntb - Build a Translate Table for Use by strscan
strspn - Locate the First Occurrence of the First Character Not in a Set
strstr - Locate First Occurrence of a String within a String
strtod - Convert a String to Double
strtok - Get a Token from a String
strtol - Convert a String to Long Integer
strtoul - Convert a String to an Unsigned Long Integer
strupr - Convert a String from Lowercase to Uppercase
strxlt - Translate a Character String
symlink - Make Symbolic Link
system - Execute a System Command
tan - Compute the Trigonometric Tangent
tanh - Compute the Hyperbolic Tangent
time - Return the Current Time
tmpfile - Create and Open a Temporary File
tmpnam - Generate Temporary Filename
toebcdic - Reduce Integer to EBCDIC Character
tolower - Translate Uppercase Character to Lowercase
toupper - Translate Lowercase Character to Uppercase
ttyname - Get Terminal Name
tzset - Specify Time Zone
ungetc - Push Back an Input Character
unlink - Delete a File
_unlink - Delete an HFS File
utime - Specify Access and Modification Times for a File
va_arg - Access an Argument from a Varying-Length Argument List
va_end - End Varying Text-Length Argument List Processing
va_start - Begin Varying-Length Argument List Processing
vfprintf - Write Formatted Output to a File
vprintf - Write Formatted Output to the Standard Output Stream
vsnprintf - Write a Limited Portion of Formatted Output to a String
vsprintf - Write Formatted Output to a String
write - Write Data to a File or Socket
_write - Write Data to an HFS File
xltable - Build Character Translation Table
y0 - Bessel Function of the Second Kind, Order 0
y1 - Bessel Function of the Second Kind, Order 1
yn - Bessel Function of the Second Kind, Order n
Copyright (c) 1998 SAS Institute Inc.
Cary, NC, USA. All rights reserved.