da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe advanced software technology department has been collecting useful C
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinroutines in a single library called libast. libast is used by nmake, the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinnmake cpp (which is mainly based on another library (libpp)), CIA
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin(C information abstractor from Robin Chen), and a collection of other
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/bin and /usr/bin commands that benefit from concentrating functionality
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinin libast.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinMore detail is available in the man pages. libast contains:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (1) routines to support a generic environment for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin a variety of UNIX operating system variants
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (2) routines that update standard libc routines
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (3) routines shared between several commands
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf you already have nmake 2.0 or newer installed then use
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin`nmake install' from this directory, otherwise use
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinship/shipin from the root of the distribution directory tree.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinSome of the routines not found in section 3:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinhash: generic, scoped hash table support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashalloc create a hash table or push new scope
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashdump debug dump of one or all hash tables
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashfree free a hashalloc()'d table
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashlook low level name lookup
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashscan entry generator for scoped table scan
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashsize explicitly change table size (usually automatic)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hashwalk apply function to each table entry
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin memhash return hash code for n-char chunk of memory
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strhash return hash code for null terminated string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chininclude/ast: libast support headers
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin align.h compile time type alignmnent support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin dirent.h POSIX directory(3) interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin error.h error() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ftw.h ftwalk() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hash.h hash*() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ls.h strls() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin re.h re*() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tar.h POSIX ustar format interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tm.h tm*() interface definitions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinmisc:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cmdargs apply a sequence of cmd line option parsers
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cmdopen like popen() but stdin and stdout are specified
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cvtatoe convert ASCII to EBCDIC
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin cvtetoa convert EBCDIC to ASCII
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin error output generic error and trace messages
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ftwalk an ftw(3) that works -- used in new tw(1)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin getcwd uses $PWD if ok, doesn't use /bin/pwd
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin getshell return full path of shell for cmdopen()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ooptget optget() for obsolete ar(1) and tar(1) options
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin optget YA getopt(3) but no argc or error message output
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pathaccess find file with specific acces on list of dirs
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pathcanon canonicalize path name in place
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pathcmd return full path name of executable using $PATH
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pathroot determine `related root' directory for command
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin perror uses strerror()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin readargs append each line of file to argv[0]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinre: egrep(1) and ed(1) style re's from V9
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (not the good awk(1) algorithm)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin recomp compile re pattern
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin reerror report re*() errors
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin reexec match string using compiled re
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin resub ed(1) style substitute using last reexec()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstring:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin chresc return next char in string converting \ sequences
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ctoi convert char constant string to int
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strcopy like strcpy(3) but returns end of destination
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strdup malloc(3) and strcpy(3) smashed together
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strerror return error message string given errno
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin stresc convert \ sequences in string in place
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin streval evaluate C expression in string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strls ls -l format support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strmatch Korn shell file pattern match
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strmode return ls -l style output given st.st_mode
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strsignal return signal id string given SIG* number
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin strtape convert generic tape unit to /dev/* file
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin token generate space separated tokens in string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintm: time conversion support
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tmdate convert date string to time_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tmform format time_t to date string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tmmake return current time_t
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tmtime convert struct tm to time_t