                                             H                     POSIX_for_OpenVMS___________________________________!                     Release Notes                          June 1994   D                     This document contains the Release Notes for the2                     POSIX for OpenVMS Version 2.0.              I                     Revision/Update Information:  This is a new document.   C                     Software Version:             POSIX for OpenVMS =                                                   Version 2.0                   1                     Digital Equipment Corporation *                     Maynard, Massachusetts                 J           ________________________________________________________________           June 1994   @           Digital Equipment Corporation makes no representationsA           that the use of its products in the manner described in B           this publication will not infringe on existing or futureB           patent rights, nor do the descriptions contained in thisB           publication imply the granting of licenses to make, use,>           or sell equipment or software in accordance with the           description.  ?           Possession, use, or copying of the software described >           in this publication is authorized only pursuant to a=           valid written license from Digital or an authorized            sublicensor.  D            Digital Equipment Corporation 1994. All Rights Reserved.  A           The postpaid Reader's Comments forms at the end of this @           document request your critical evaluation to assist in)           preparing future documentation.   ;           The following are trademarks of Digital Equipment :           Corporation: Alpha AXP, AXP, Bookreader, DECnet,E           DECwindows, Digital, INTERNET, OpenVMS, ULTRIX, VAX, VAX C, E           VAXcluster, VAX DOCUMENT, VAX RMS, VMS, VMScluster, the AXP %           logo, and the DIGITAL logo.   3           The following are third-party trademarks:   6           NFS is a trademark of Sun Microsystems, Inc.8           UniForum is a registered trademark of UniforumE           UNIX is a registered trademark of UNIX System Laboratories,            Inc.7           XENIX is a trademark of Microsoft Corporation @           X/Open is a registered trademark of the X/Open Company           Limited A           AT&T and System V are registered trademarks of American %           Telephone and Telegraph Co. B           IEEE is a registered trademark and POSIX is a registered?           certification mark of the Institute of Electrical and             Electronics Engineers.  D           This document was prepared using VAX DOCUMENT Version 2.1.                                 C   _________________________________________________________________   C                                                            Contents       +   1  Introduction and General Release Notes   C         1.1   Features of POSIX for OpenVMS Version 2.0.....    1-2 C         1.1.1     Evolution of the IEEE 1003.1b Standard....   1-16 C         1.1.2     Evolution of the IEEE 1003.2 Standard.....   1-18 C         1.2   POSIX for OpenVMS Version 2.0 Documentation...   1-19 C         1.3   Prerequisites.................................   1-19 -         1.4   POSIX for OpenVMS Inter-Version C               Compatibility.................................   1-20 C         1.5   POSIX for OpenVMS Version 2.0 Savesets........   1-20 C         1.6   System Parameters.............................   1-21 C         1.6.1     Missing Parameters........................   1-21 C         1.6.2     Default Value of {ARG_MAX}................   1-21 C         1.6.3     Value of {OPEN_MAX}.......................   1-21 C         1.6.4     Running Out of AST Quota..................   1-22 2         1.7   Using POSIX for OpenVMS Within MixedC               Clusters......................................   1-22 C         1.8   C Compilers...................................   1-22 :         1.9   Restrictions on Using POSIX for OpenVMS withC               other Products................................   1-23 C         1.9.1     DECdtm Version 1.1........................   1-23 C         1.9.2     VPA and DECps Version.....................   1-23 C         1.9.3     DEC TCP/IP Services for OpenVMS...........   1-24 C         1.9.4     DECwindows Motif..........................   1-24 C         1.9.5     DFS.......................................   1-24 C         1.10  Internationalization..........................   1-25 C         1.11  CPU Limits for POSIX Processes................   1-26 C         1.12  Record Files..................................   1-26 C         1.13  The /usr/include Symbolic Link................   1-26 C         1.14  Universal Time in POSIX for OpenVMS...........   1-27 5         1.15  Exiting a POSIX command from a SET HOST C               Session.......................................   1-27 C         1.16  The POSIX for OpenVMS Sample Application......   1-27   C                                                                 iii                    +     2  POSIX for OpenVMS Callable Interface   E           2.1   Semaphore Functions...........................    2-1 E           2.2   Curses Applications...........................    2-1 E           2.3   Floating Point Output Conversion..............    2-2 E           2.4   Handling File Descriptors.....................    2-3 9           2.5   POSIX$CFS_SERVICES Error Messages and the E                 Console.......................................    2-3 E           2.6   Asynchronous Safety...........................    2-4 8           2.6.1     Functions Whose Interface Prevents aE                     Reentrant Implementation..................    2-4 E           2.6.2     Process-Wide Information..................    2-6 E           2.6.3     Standard I/O Functions....................    2-7 E           2.6.4     Other Functions...........................    2-8 E           2.7   Callable Functions............................    2-8 E           2.7.1     execvp() .................................    2-8 E           2.7.2     fcntl() ..................................    2-8 E           2.7.3     fork() ...................................    2-9 E           2.7.4     fwrite() .................................    2-9 E           2.7.5     getenv() .................................    2-9 E           2.7.6     sem_init() ...............................    2-9 E           2.7.7     sysconf()  and open().....................   2-10 E           2.7.8     system() .................................   2-10 E           2.7.9     tcsetattr() ..............................   2-10 E           2.7.10    tzset() ..................................   2-11 E           2.7.11    wait()  and waitpid().....................   2-12 E           2.7.12    wordexp() ................................   2-12 E           2.7.13    write() ..................................   2-13 E           2.8   POSIX for OpenVMS Header Files................   2-13 E           2.9   Special Files.................................   2-17 E           2.9.1     Pipes.....................................   2-17   6     3  POSIX for OpenVMS Shell Interface and Utilities  E           3.1   Temporary Files...............................    3-1 E           3.2   The POSIX Command.............................    3-2 5           3.2.1     The POSIX Command and the /OUTPUT E                     Qualifier.................................    3-2 E           3.2.2     The POSIX Command and Shared Libraries....    3-2 4           3.3   OpenVMS Command Procedures and POSIXE                 Commands......................................    3-2 E           3.4   Shell Scripts inside DCL Command Procedures...    3-4 E           3.5   Cut and Paste Buffer Support..................    3-5 E           3.6   alias.........................................    3-5        iv                   I               3.7   c89...........................................    3-5 I               3.7.1     Using the -W Option.......................    3-5 I               3.7.2     #module Directives........................    3-6 >               3.7.3     Compiling with DECwindows Motif HeaderI                         Files.....................................    3-6 >               3.7.4     Compiling and Linking with POSIX C RunI                         Time Libraries............................    3-6 I               3.7.5     Generating a Process Dump for an Image....    3-7 I               3.7.6     c89 Temporary Files.......................    3-7 <               3.7.7     Comparison of c89 Options and OSF ccI                         Options...................................    3-7 I               3.8   chmod.........................................    3-8 I               3.9   cxx...........................................    3-8 I               3.10  date..........................................    3-9 I               3.11  dcl...........................................    3-9 @               3.11.1    Using with Commands that Change TerminalI                         Characteristics...........................    3-9 I               3.11.2    Type-ahead Characters are Lost............    3-9 I               3.11.3    Shutting the System Down..................    3-9 I               3.11.4    Using telnet and POSIX$CLI as the CLI.....    3-9 I               3.12  df............................................    3-9 I               3.13  du............................................   3-10 I               3.14  ed............................................   3-10 I               3.15  echo..........................................   3-10 I               3.16  ex............................................   3-10 I               3.17  gencat........................................   3-11 I               3.18  id............................................   3-11 I               3.19  lex...........................................   3-11 I               3.20  line..........................................   3-11 I               3.21  ln............................................   3-11 I               3.22  make..........................................   3-12 I               3.23  more..........................................   3-12 I               3.24  newgrp........................................   3-12 I               3.25  od............................................   3-12 I               3.26  patch.........................................   3-12 I               3.27  ps............................................   3-12 I               3.28  run...........................................   3-13 I               3.29  sh............................................   3-13 I               3.30  spell.........................................   3-13 I               3.31  stty..........................................   3-14 I               3.32  tar...........................................   3-14 I               3.33  The terminfo Database.........................   3-14 I               3.34  vi............................................   3-14     I                                                                         v                    E           3.35  emacs.........................................   3-15                                                                                              vi                         I                                                                         1 I         _________________________________________________________________   I                                    Introduction and General Release Notes     A               POSIX for OpenVMS Version 2.0 is a software product E               that provides you with the capability of developing and I               running portable applications in a POSIX and XPG conforming G               environment, on both VAX and Alpha AXP platforms. You can E               develop an application with POSIX for OpenVMS that will H               run both on OpenVMS systems and on other systems that alsoI               support the POSIX and XPG standards. Applications developed E               on other systems that strictly conform to the following H               standards, draft standards or specifications can be run onI               a OpenVMS system on which the POSIX for OpenVMS product has                been installed:   %               o  IEEE Std 1003.1-1988   9               o  IEEE Std 1003.1-1990 ISO/IEC 9945-1:1990   %               o  IEEE Std P1003.1a/D4   B               o  IEEE Std 1003.1b-1993 (note that this standard isD                  now approved, and represents the realtime interface:                  developed in the P1003.4 draft standards)  C               o  IEEE Std 1003.2-1992 ISO/IEC DIS 9945-2 (note that F                  this standard includes the User Portability ExtensionE                  utilities originally specified in the P1003.2a draft                   standards)   I               o  IEEE Std P1003.4a/D6 (note that this draft standard will :                  be renamed to IEEE 1003.1c upon approval)  8               o  X/Open Portability Guide Issue 4 (XPG4)  F               o  ISO/IEC 9899:1990, Programming Languages-C (note thatF                  this is technically identical to the ANSI C standard)  I               The prefix "P" indicates that the referenced POSIX document G               is a draft and not a final standard. The number following B               the letter "D" indicates the draft number. ThereforeH               P1003.1a/D4 means Draft 4 of draft POSIX standard 1003.1a.  I                                Introduction and General Release Notes 1-1            *     Introduction and General Release Notes      <           POSIX for OpenVMS Version 2.0 conforms to the XPG4B           definitions. For backward compatibility, where possible,C           XPG3 conformance is maintained. However, XPG4 specifies a B           wider range of functionality and is more closely aligned@           with the POSIX standards and draft standards. The XPG3D           functionality is described in the following three volumes,>           which make up a part of the seven volume set of XPG3           specifications:   ?           1. X/Open Portability Guide Issue 3: XSI Commands and               Utilities  D           2. X/Open Portability Guide Issue 3: XSI System Interfaces              and Headers  @           3. X/Open Portability Guide Issue 3: XSI Supplementary              Definitions[1]   >           The XPG4 functionality is described in the following           documents:  D           o  X/Open CAE Specification, Commands and Utilities, Issue              4  E           o  X/Open CAE Specification, System Interfaces and Headers,               Issue 4  C           The X/Open Guide, XPG3-XPG4 Base Migration Guide supplies @           a summary of the differences between the XPG3 and XPG4?           definitions, for all utilities, built-in commands and            callable functions.   C           In addition, POSIX for OpenVMS supplies a number of UNIX- ?           like utilities not included in the POSIX, XPG and ISO            specifications.   1     1.1 Features of POSIX for OpenVMS Version 2.0   C           POSIX for OpenVMS Version 2.0 maintains the functionality D           supplied by the following earlier releases of the product:  "           o  VMS POSIX Version 1.0  "           o  VMS POSIX Version 1.1  .           o  POSIX for OpenVMS VAX Version 1.2             ____________________B           [1]   Specifies the POSIX for OpenVMS Version 2.0 curses                   system  .     1-2 Introduction and General Release Notes           I                                    Introduction and General Release Notes I                             1.1 Features of POSIX for OpenVMS Version 2.0     2               o  POSIX for OpenVMS AXP Version 1.0  G               POSIX for OpenVMS Version 2.0 also supplies the following                new features:   9               o  Runs on the following operating systems:   -                  -  OpenVMS VAX Version 5.5-2   +                  -  OpenVMS VAX Version 6.0   +                  -  OpenVMS VAX Version 6.1   +                  -  OpenVMS AXP Version 6.1_  I                  (See Section 1.3 for details of software prerequesites.)   D               o  Supports the following utility and built-in command                  definitions:   E                  -  X/Open CAE Specification, Commands and Utilities,i                     Issue 4i  ;                  -  IEEE Std 1003.2-1992 ISO/IEC DIS 9945-2   D               The following list itemises the utilities and callableF               functions new to POSIX for OpenVMS at Version 2.0. TheseG               are documented in the POSIX for OpenVMS Reference Manual: I               Shell and Utilities and POSIX for OpenVMS Reference Manual:_A               Callable Interface, the Online Help and man system.t  D               o  Supplies the following new "POSIX for OpenVMS only"                  utilities:   <                  bdiff             compares large text files  /                  cxx               C++ compilern  F                  dc                arbitrary-precision desk calculator  6                  diffh             compares text files  8                  fmt               simple text formatter  I                  iconvc            iconv character set conversion utility +                                    compilera  G                  ipcrm             removes message, semaphore or shared 5                                    memory identifiersi  F                  ipcs              displays information on active IPC,D                                    message queues, shared memory and-                                    semaphoresn  I                                Introduction and General Release Notes 1-3  p  t      *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0A      @              rev               reverses character order in input$                                lines  8              size              displays object file size  @              untic             decompiles a terminfo binary file  C              which             displays full pathname of executableX'                                commands   <           o  Supplies the following new IEEE Std 1003.2-1992=              ISO/IEC DIS 9945-2 and X/Open CAE Specification,e7              Commands and Utilities, Issue 4 utilities:   5              newgrp            changes to a new group   =              talk              communicates with another usert  ?              tput              changes terminal characteristicsa  E           o  Supplies the following callable functions defined by the 5              approved standard IEEE Std 1003.1b-1993:N  B              aio_cancel()      cancels an asynchronous I/O request  ;              aio_error()       gets the error status for an 7                                asynchronous I/O request   <              aio_fsync()       synchronises asynchronous I/O)                                operations   @              aio_read()        performs an asynchronous I/O read(                                operation  ;              aio_return()      gets the return status of anO9                                asynchronous I/O operation   D              aio_suspend()     waits for an asynchronous I/O request  A              aio_write()       performs an asynchronous I/O write.(                                operation  @              clock_getres()    returns the resolution of a clock  C              clock_gettime()   returns the current value of a clock   +              clock_settime()   sets a clock.  9              fdatasync()       synchronises a file's dataA  1              lio_listio()      lists directed I/Of  E              mlock()           locks a range of process address space   :              mlockall()        locks process address space  .     1-4 Introduction and General Release Notes .  .      I                                    Introduction and General Release Notes.I                             1.1 Features of POSIX for OpenVMS Version 2.0       I                  mmap()            maps process address space to a memory )                                    object.  <                  mprotect()        changes memory protection  9                  mq_close()        closes a message queueP  @                  mq_getattr()      gets message queue attributes  @                  mq_notify()       notifies a process of message0                                    availablility  8                  mq_open()         opens a message queue  B                  mq_receive()      receives a message from a queue  <                  mq_send()         adds a message to a queue  @                  mq_setattr()      sets message queue attributes  :                  mq_unlink()       removes a message queue  >                  msync()           synchronises memory objects  E                  munlock()         unlocks a range of process address (                                    space  @                  munlockall()      unlocks process address space  I                  munmap()          unmaps previously mapped address spacer  D                  nanosleep()[2]    suspends a process from execution  :                  rf_create()       creates a realtime file  G                  rf_freebuf()      releases a previously allocated datat)                                    buffer   F                  rf_getaiocap()    gets the atomic I/O capabilities of1                                    realtime files   F                  rf_               gets the allocation capabilities of1                  getalloccap()     realtime files.  H                  rf_               gets the allocation increment list of1                  getallocincr()    realtime files.  H                  rf_getattr()      gets the attributes of realtime files  H                  rf_getbiocap()    gets the buffered I/O capabilities of1                                    realtime files.  :                  rf_getbuf()       allocates a data buffer  A                  rf_               gets the cache capabilities of)1                  getcachecap()     realtime files   I                  [2]already_present_in_VMS_POSIX_Version_1.1_and_POSIX___.  6                  for OpenVMS VAX Version 1.2 releases.  I                                Introduction and General Release Notes 1-5     .      *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0.      B              rf_getdiocap()    gets the direct I/O capabilities of-                                realtime filesy  D              rf_getincr()      gets the transfer size increment list1                                for realtime files   E              rf_setattr()      sets the attributes for realtime files   C              sched_            gets the scheduling parameters for a &              getparam()        process  D              sched_get_        gets the maximum scheduling parameter%              priority_max()    limits.  D              sched_get_        gets the minimum scheduling parameter%              priority_min()    limits.  7              sched_            gets scheduling policies.              getscheduler()   <              sched_rr_get_     gets the execution time limit              interval()i  9              sched_            sets scheduling parametersh              setparam().  =              sched_            sets scheduling parameters and '              setscheduler()    policiesl  ?              sched_yield()     relinquishes the processor for a &                                process  7              sem_close()       closes a named semaphoreP  <              sem_destroy()     destroys an unnamed semaphore  <              sem_getvalue()    gets the value of a semaphore  ?              sem_init()        initialises an unnamed semaphore.  <              sem_open()        opens and initialises a named(                                semaphore  2              sem_post()        unlocks a semaphore  0              sem_trywait()     locks a semaphore  8              sem_unlink()      removes a named semaphore  0              sem_wait()        locks a semaphore  ;              shm_open()        opens a shared memory objectl  =              shm_unlink()      removes a shared memory object.  ;              sigqueue()        queues a signal to a process   .     1-6 Introduction and General Release Notes           I                                    Introduction and General Release Notes I                             1.1 Features of POSIX for OpenVMS Version 2.0       <                  sigtimedwait()    waits for a queued signal  <                  sigwaitinfo()[3]  waits for a queued signal  >                  timer_create()    creates a per-process timer  >                  timer_delete()    deletes a per-process timer  D                  timer_            gets a timer overrun expiry count                  getoverrun()a  5                  timer_gettime()   gets a timer value   5                  timer_settime()   sets a timer value.I                  [3]used_to_be_called_sigwaitrt();_see_Section_1.1.1_____n  E                  The following IEEE Std P1003.4/D9 callable functions H                  have been superceded by the functions listed above, and4                  have been removed from the product:  B                  abstimer()    acancel()     afsync()      aread()  H                  awrite()      evtaddset()   evtdelset()   evtemptyset()  D                  evtfillset()  evtismember() evtlongjmp()  evtpoll()  H                  evtprocmask() evtraise()    evtsetjmp()   evtsigclass()  E                  evtsuspend()  fgetattr()    fgetcap()     fgetincr().  D                  fsetattr()    fsgetcap()    fsgetincr()   getattr()  D                  getcap()      getclock()    getincr()     getprio()  C                  getscheduler()gettimer()    iosuspend()   listio()d  B                  memlk()       memunlk()     mkmq()        mksem()  E                  mkshm()       mktimer()     mqgetattr()   mqgetevt()   F                  mqgetpid()    mqpurge()     mqputevt()    mqreceive()  D                  mqsend()      mqsetattr()   msgalloc()    msgfree()  C                  reltimer()    resabs()      resclock()    resrel()   D                  ressleep()    rmtimer()     rtcreate()    rtfsync()  D                  semifpost()   semifwait()   sempost()     semwait()  I                  setattr()     setclock()    setprio()     setscheduler()   4                  shmmap()      shmunmap()    yield()  G               o  Extends the range of callable functions defined in the.2                  <math.h> header file, as follows:  6                  acos()[3]         arc cosine function  I                  [3]already_present_in_pre-Version_2.0_releases__________   I                                Introduction and General Release Notes 1-7.    y      *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0.      2              acosf()           arc cosine function  B              acosh()[5]        calculate inverse hyperbolic cosine  B              acoshf()[5]       calculate inverse hyperbolic cosine  B              acoshl()[5]       calculate inverse hyperbolic cosine  2              acosl()           arc cosine function  0              asin()[3]         arc sine function  0              asinf()           arc sine function  A              asinh()[5]        calculates inverse hyperbolic sine   A              asinhf()[5]       calculates inverse hyperbolic sine_  A              asinhl()[5]       calculates inverse hyperbolic sine   0              asinl()           arc sine function  3              atan()[3]         arc tangent functione  3              atan2()[3]        arc tangent functiono  3              atan2f()          arc tangent function   3              atan2l()          arc tangent functionG  3              atanf()           arc tangent functiond  D              atanh()[5]        calculates inverse hyperbolic tangent  D              atanhf()[5]       calculates inverse hyperbolic tangent  D              atanhl()[5]       calculates inverse hyperbolic tangent  3              atanl()           arc tangent functiono  1              cbrt()[5]         cube root function   1              cbrtf()[5]        cube root functiont  1              cbrtl()[5]        cube root function   5              ceil()[3]         ceiling value functione  5              ceilf()           ceiling value function   5              ceill()           ceiling value function9  .              cos()[3]          cosine function  .              cosf()            cosine function  9              cosh()[3]         hyperbolic cosine function   9              coshf()           hyperbolic cosine function0  9              coshl()           hyperbolic cosine function   E              [3]already_present_in_pre-Version_2.0_releases__________h  &              [5]Alpha AXP systems only  .     1-8 Introduction and General Release Notes r         I                                    Introduction and General Release NotestI                             1.1 Features of POSIX for OpenVMS Version 2.0n      2                  cosl()            cosine function  1                  erf()[3,5]        error functionr  ?                  erfc()[3,4]       complementary error functionl  ?                  erfcf()           complementary error function"  ?                  erfcl()           complementary error functiond  1                  erff()            error function   1                  erfl()            error functione  7                  exp()[3]          exponential functiona  7                  expf()            exponential function   7                  expl()            exponential function   7                  expm1()[5]        exponential function   7                  expm1f()[5]       exponential function   7                  expm1l()[5]       exponential function   :                  fabs()[3]         absolute value function  :                  fabsf()           absolute value function  :                  fabsl()           absolute value function  1                  floor()[3]        floor functiond  1                  floorf()          floor functione  1                  floorl()          floor function   ;                  fmod()[3]         remainder value function   ;                  fmodf()           remainder value functionO  ;                  fmodl()           remainder value function   G                  frexp()[3]        extract mantissa and exponent from am)                                    number   G                  frexpf()          extract mantissa and exponent from ae)                                    numbero  G                  frexpl()          extract mantissa and exponent from a )                                    numbers  5                  gamma()[3,4]      log gamma functionP  >                  hypot()[3,4]      Euclidean distance function  >                  hypotf()          Euclidean distance function  I                  [3]already_present_in_pre-Version_2.0_releases__________   F                  [4]implemented on Alpha AXP systems using an improved                  algorithm*                  [5]Alpha AXP systems only  I                                Introduction and General Release Notes 1-9  O         *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0e      :              hypotl()          Euclidean distance function  +              isnan()[3]        test for NaNP  +              isnanf()          test for NaN_  +              isnanl()          test for NaNh  @              j0()[3,4]         Bessel function of the first kind  @              j0f()             Bessel function of the first kind  @              j0l()             Bessel function of the first kind  @              j1()[3,4]         Bessel function of the first kind  @              j1f()             Bessel function of the first kind  @              j1l()             Bessel function of the first kind  @              jn()[3,4]         Bessel function of the first kind  @              jnf()             Bessel function of the first kind  @              jnl()             Bessel function of the first kind  @              ldexp()[3]        load exponent of a floating point%                                number(  @              ldexpf()          load exponent of a floating point%                                number   @              ldexpl()          load exponent of a floating point%                                numbern  1              lgamma()[3,4]     log gamma function   1              lgammaf()         log gamma function4  1              lgammal()         log gamma function   ;              __lgamma()[5]     reentrant log gamma functionr  ;              __lgammaf()[5]    reentrant log gamma function   ;              __lgammal()[5]    reentrant log gamma functionn  9              log()[3]          natural logarithm function   9              log10()[3]        base 10 logarithm function   9              log10f()          base 10 logarithm functionS  9              log10l()          base 10 logarithm functionf  9              log1p()[5]        natural logarithm functionx  9              log1pf()[5]       natural logarithm function   E              [3]already_present_in_pre-Version_2.0_releases__________   B              [4]implemented on Alpha AXP systems using an improved              algorithm&              [5]Alpha AXP systems only  /     1-10 Introduction and General Release Notes            I                                    Introduction and General Release NotesrI                             1.1 Features of POSIX for OpenVMS Version 2.0       =                  log1pl()[5]       natural logarithm function   <                  log2()[5]         base 2 logarithm function  <                  log2f()[5]        base 2 logarithm function  <                  log2l()[5]        base 2 logarithm function  =                  logb()[5]         radix-independent functione  =                  logbf()[5]        radix-independent function   =                  logbl()[5]        radix-independent function   =                  logf()            natural logarithm functione  =                  logl()            natural logarithm functionn  B                  modf()[3]         decompose floating-point number  B                  modff()           decompose floating-point number  B                  modfl()           decompose floating-point number  =                  nextafter()[5]    radix-independent functiona  =                  nextafterf()[5]   radix-independent function   =                  nextafterl()[5]   radix-independent functionc  1                  pow()[3]          power function   1                  powf()            power function   1                  powl()            power functionn  9                  rint()[5]         rounded value function9  9                  rintf()[5]        rounded value functions  9                  rintl()[5]        rounded value function   =                  scalb()[5]        radix-independent functione  =                  scalbf()[5]       radix-independent functions  =                  scalbl()[5]       radix-independent functiona  0                  sin()[3]          sine function  0                  sinf()            sine function  ;                  sinh()            hyperbolic sine function   ;                  sinhf()           hyperbolic sine function   ;                  sinhl()           hyperbolic sine function   0                  sinl()            sine function  7                  sqrt()[3]         square root function   I                  [3]already_present_in_pre-Version_2.0_releases__________c  *                  [5]Alpha AXP systems only  I                               Introduction and General Release Notes 1-11a c         *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0       3              sqrtf()           square root function   3              sqrtl()           square root functions  /              tan()[3]          tangent functiont  /              tanf()            tangent function   :              tanh()[3]         hyperbolic tangent function  :              tanhf()           hyperbolic tangent function  :              tanhl()           hyperbolic tangent function  /              tanl()            tangent functionj  A              y0()[3,4]         Bessel function of the second kind   A              y0f()             Bessel function of the second kind   A              y0l()             Bessel function of the second kind   A              y1()[3,4]         Bessel function of the second kind   A              y1f()             Bessel function of the second kind   A              y1l()             Bessel function of the second kindi  A              yn()[3,4]         Bessel function of the second kind   A              ynf()             Bessel function of the second kindg  A              ynl()             Bessel function of the second kindsE              [3]already_present_in_pre-Version_2.0_releases__________j  B              [4]implemented on Alpha AXP systems using an improved              algorithm  =              Note that those variant pairs of the mathematicsu<              functions ending in the letters "f" and "l" are>              available on Alpha AXP systems only. For example,A              cbrt()  is available on all platforms, while cbrtf() 7              and cbrtl()  are Alpha AXP only functions.   <           o  Supplies the following new or modified callableC              functions for the provision of wide-character support,eC              which comply with the X/Open CAE Specification, System -              Interfaces and Headers, Issue 4:   8              fgetwc()          get a wide-character code  :              fgetws()          get a wide-character string  5              fprintf()[6]      print formatted outputs  E              [6]already_present_in_pre-Version_2.0_releases,_without_   )              wide-character functionalitye  /     1-12 Introduction and General Release Notesg           I                                    Introduction and General Release Notes I                             1.1 Features of POSIX for OpenVMS Version 2.0       <                  fputwc()          put a wide-character code  >                  fputws()          put a wide-character string  :                  fscanf()[6]       convert formatted input  7                  getwc()           get a wide-character   E                  getwchar()        get a wide-character from standard (                                    input  G                  iswalnum()        test for alphanumeric wide-character '                                    codec  E                  iswalpha()        test for alphabetic wide-character '                                    codes  G                  iswcntrl()        test for control wide-character code   G                  iswctype()        test for a specified character class   H                  iswdigit()        test for decimal digit wide-character'                                    code   C                  iswgraph()        test for visible character wide- 1                                    character codet  B                  iswlower()        test for lowercase letter wide-1                                    character codeg  E                  iswprint()        test for printable character wide-h1                                    character code   F                  iswpunct()        test for punctuation wide-character'                                    code   F                  iswspace()        test for white space wide-character'                                    codes  B                  iswupper()        test for uppercase letter wide-1                                    character code   C                  iswxdigit()       test for hexadecimal digit wide- 1                                    character code   C                  mblen()[6]        get number of bytes comprising ai6                                    multibyte character  G                  mbstowcs()[6]     convert multibyte characters to wideo,                                    character  F                  mbtowc()[6]       convert multibyte character to wide,                                    character  I                  [6]already_present_in_pre-Version_2.0_releases,_without_e  -                  wide-character functionality   I                               Introduction and General Release Notes 1-13u (         *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0       5              printf()[6]       print formatted outpute  3              putwc()           get a wide-character   A              putwchar()        put a wide-character onto standard %                                output   6              scanf()[6]        convert formatted input  <              towlower()        transliterate uppercase wide-6                                characters to lowercase  <              towupper()        transliterate lowercase wide-6                                characters to uppercase  9              ungetwc()         push a wide-character code   >              wcscat()          concatenates two wide-character&                                strings  <              wcschr()          scans a wide-character string  B              wcscmp()          compares two wide-character strings  B              wcscoll()         compares two wide-character strings:                                using collating information  =              wcscpy()          copies a wide-character stringt  A              wcscspn()         calculates length of complementaryt7                                wide-character substringt  =              wcsftime()        convert data and time to wide- /                                character stringf  A              wcslen()          calculate length of wide-character)%                                string(  E              wcsncat()         concatenate part of two wide-characteru&                                strings  A              wcsncmp()         compare part of two wide-characterm&                                strings  E              wcsncpy()         copies part of a wide-character stringp  D              wcspbrk()         scans wide-character string for wide--                                character code   <              wcsrchr()         scans a wide-character string  B              wcsspn()          calculates length of wide-character(                                substring  E              [6]already_present_in_pre-Version_2.0_releases,_without_   )              wide-character functionality   /     1-14 Introduction and General Release Notes            I                                    Introduction and General Release NoteshI                             1.1 Features of POSIX for OpenVMS Version 2.0n      C                  wcstod()          convert wide-character string toe:                                    double-precision number  C                  wcstok()          split wide-character string intor)                                    tokens   E                  wcstol()          convert wide-character string into /                                    long integera  C                  wcstombs()[6]     convert wide-character string toe3                                    character string]  B                  wcstoul()         convert string to unsigned long*                                    integer  C                  wcswcs()          finds a wide-character substringc  F                  wcswidth()        gets number of column positions for8                                    wide-character string  F                  wcsxfrm()         transform wide-character string and1                                    place in array   A                  wctomb()[6]       convert wide-character code tot,                                    character  <                  wctype()          defines a character class  F                  wcwidth()         gets number of column positions for6                                    wide-character codeI                  [6]already_present_in_pre-Version_2.0_releases,_without_   -                  wide-character functionalityt  E               o  Supplies the following new callable functions, whichnA                  comply with the X/Open CAE Specification, System 1                  Interfaces and Headers, Issue 4:   G                  iconv()           converts characters from one codeset -                                    to another(  F                  iconv_close()     deallocates a conversion descriptor  D                  iconv_open()      allocates a conversion descriptor  E                  msgctl()          handles message control operationsc  7                  msgget()          gets a message queue   G                  msgrcv()          handles message reception operationso            I                               Introduction and General Release Notes 1-15            *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0y      ;              msgsnd()          handles message transmission )                                operationso  C              semctl()          handles semaphore control operationso  8              semget()          gets a list of semaphores  ;              semop()           handles semaphore operations   5              shmat()           attaches shared memory   =              shmctl()          supplies shared memory control )                                operations   =              shmdt()           detaches shared memory segment   1              shmget()          gets shared memory   D              strfmon()         converts a monetary value to a string  E              strptime()        converts a string into a date and timep  @           o  Supplies the following new "POSIX for OpenVMS only"               callable functions:  >              ftok()            an inter-process communications/                                support function   =              getwc_            get wide character from stream(              unlocked()u  =              getwchar_         get wide character from streamu              unlocked()   ;              putwc_            put wide character on streamf              unlocked()n  ;              putwchar_         put wide character on stream               unlocked()   C              rexec()           returns a stream to a remote commandr  ;              setgroups()       sets supplementary group IDsr  B              wcstok_r()        breaks a wide character string into%                                tokens3  0     1.1.1 Evolution of the IEEE 1003.1b Standard  @           POSIX for OpenVMS Version 2.0 implements the full IEEE>           Std 1003.1b-1993 standard, formerly the IEEE P1003.4>           draft standards. A number of technical upgrades have@           been introduced since the release of POSIX for OpenVMSA           Version 2.0 External Field Test, which implemented IEEEn           Std P1003.4/D13.  /     1-16 Introduction and General Release Notes            I                                    Introduction and General Release Notes_I                             1.1 Features of POSIX for OpenVMS Version 2.0m    E               The following are the technical differences between the I               two versions of the standard, and the current status of theI/               POSIX for OpenVMS implementation:   E               o  POSIX.1b introduces a new field in the sigevent dataOE                  structure, that was not present in P1003.4/D13; thisiE                  field is called sigev_notify and indicates whether a F                  queued signal is to be generated when an asynchronousH                  service completes. In the previous release of POSIX forF                  OpenVMS, this field was present in the declaration ofF                  the structure, but was ignored. Existing applicationsE                  that call any of the following functions may require I                  slight source changes with the release, unless they were ;                  written according to the guidelines below:i                    -  aio_read()                    -  aio_write()d                     -  lio_listio()  "                  -  timer_create()  H                  Asynchronous I/O requests (that is, aio_read() and aio_E                  write() calls, as well as individual requests passed H                  to the lio_listio() function) that need a queued signalI                  upon completion should set both aio_sigevent.sigev_signoeE                  to a non-zero value and aio_sigevent.sigev_notify to                   SIGEV_SIGNAL.  =                  Asynchronous I/O requests that do not need a C                  queued signal upon completion should set both aio_aE                  sigevent.sigev_signo to zero and aio_sigevent.sigev_o&                  notify to SIGEV_NONE.  D                  In P1003.4/D13, a signal is always generated when aB                  timer expires, while in the final standard signalD                  generation may be suppressed by supplying to timer_G                  create() a sigevent structure with sigev_notify set to H                  SIGEV_NONE. Programs may be ported from Draft 13 to theH                  final standard if the sigev_notify field is explicitely%                  set to SIGEV_SIGNAL.   A               o  The function sigwaitrt() of P1003.4/D13 has been E                  renamed sigwaitinfo() in the final standard, but its F                  interface has not been changed. In POSIX for OpenVMS,=                  this function only exists with the new name.   I                               Introduction and General Release Notes 1-17            *     Introduction and General Release Notes1     1.1 Features of POSIX for OpenVMS Version 2.0l    D           o  A new file open flag, namely O_RSYNC, has been added in               the final standard.  B           o  The message queue open flag name MQ_NONBLOCK has beenD              abandoned in favour of the traditional name O_NONBLOCK.  D           The IEEE Std 1003.1b-1993 callable functions are describedE           in full in the POSIX for OpenVMS Reference Manual: Callabled9           Interface, the Online Help and the man utility.t  /     1.1.2 Evolution of the IEEE 1003.2 Standard   ;           Three callable functions, fnmatch(),  glob(), and(E           regerror(),  have had their interfaces changed from P1003.2)B           /D10 (implemented in previous versions POSIX for OpenVMSB           Version 1.x) to IEEE Std 1003.2-1992 ISO/IEC DIS 9945-2.C           Programs that have been compiled and linked under VersiontC           1.x will continue to see the old behaviour (see POSIX for(B           OpenVMS Guide to Programming for further details), whileC           all programs that are compiled under Version 2.0 will seetD           the new one, and may need changes at source code level, as           follows:  D           o  In POSIX for OpenVMS Version 1.x, the default behaviourB              of fnmatch()  and glob() was to interpret a backslashD              (\)  literally, as an ordinary character; if you wantedE              to interpret a backslash as an escape character, you hadtA              to specify an option flag (FNM_QUOTE or GLOB_QUOTE).o  D              In POSIX for OpenVMS Version 2.0, the default behaviour@              has been reversed: a backslash is interpreted as anB              escape character by default, and an option flag (FNM_?              NOESCAPE or GLOB_NOESCAPE) is needed for a literal               interpretation.  D           o  The function regerror()  used to have a single argument?              in POSIX for OpenVMS Version 1.x, but now has fourd              arguments.2  B           The new versions of these utilities are described in theB           POSIX for OpenVMS Reference Manual: Shell and Utilities,.           the Online Help and the man utility.      /     1-18 Introduction and General Release NotesM e  o      I                                    Introduction and General Release Notes I                           1.2 POSIX for OpenVMS Version 2.0 Documentationt    7         1.2 POSIX for OpenVMS Version 2.0 Documentationn  @               The POSIX for OpenVMS Version 2.0 kit provides the&               following documentation:  0               o  POSIX for OpenVMS Release Notes  E               o  POSIX for OpenVMS Installation and System Managementt                  Guide  H               o  POSIX for OpenVMS Reference Manual: Shell and Utilities  G               o  POSIX for OpenVMS Reference Manual: Callable Interface   ;               o  POSIX for OpenVMS Guide to Using the Shell(  7               o  POSIX for OpenVMS Guide to Programming   C               o  POSIX 1003.1-1990 Conformance Document for OpenVMS   D               o  POSIX 1003.1b-1993 Conformance Document for OpenVMS  C               o  POSIX 1003.2-1992 Conformance Document for OpenVMS   ?               o  POSIX for OpenVMS X/Open Conformance Statement   2               o  Online Help for POSIX for OpenVMS                  o  The man utility           1.3 Prerequisites_  F               POSIX for OpenVMS Version 2.0 can be installed on any of.               the following operating systems:  4               o  POSIX for OpenVMS VAX Version 5.5-2  2               o  POSIX for OpenVMS VAX Version 6.0  2               o  POSIX for OpenVMS VAX Version 6.1  2               o  POSIX for OpenVMS AXP Version 6.1  @               The POSIX for OpenVMS Version 2.0 kit is installedI               according to the architecture and operating system version.eC               See Section 1.5 for precise details of how the kit ise               constructed.  B               If you wish to upgrade OpenVMS from Version 5.5-2 toH               Version 6.0 or Version 6.1, or from Version 6.0 to VersionD               6.1, POSIX for OpenVMS must be reinstalled, due to theG               version-specific nature of the kernel and other elements.[  I                               Introduction and General Release Notes 1-19- r  e      *     Introduction and General Release Notes     1.3 Prerequisites     =           A registered and loaded license for OpenVMS must bea           installed.  5     1.4 POSIX for OpenVMS Inter-Version Compatibility   B           For details of inter-version compatibility, refer to the1           POSIX for OpenVMS Guide to Programming.t  .     1.5 POSIX for OpenVMS Version 2.0 Savesets  B           Two versions of the installation procedure are supplied,C           one using VMSINSTAL and one using the POLYCENTRE SoftwareaD           Installation Utility (PCSI). These relate to the POSIX for.           OpenVMS Version 2.0 kits as follows:  E           ___________________________________________________________ E           Platform______________VMSINSTAL_____PCSI___________________   /           OpenVMS VAX Version   kit 1         -            5.5-2r  /           OpenVMS VAX Version   kit 1         - 
           6.0   3           OpenVMS VAX Version   kit 1         kit 2 
           6.1   3           OpenVMS AXP Version   kit 1         kit 3aE           6.1________________________________________________________r  E           The PCSI installation system relates to the installation of C           POSIX for OpenVMS Version 2.0 on OpenVMS Version 6.1, VAXo           and AXP.  B           The kit name for kit 1 in the above table is POSIX020.*.C           The kit name for kit 2 is DEC-VAXVMS-POSIX-V0200--1.PCSI. C           The kit name for kit 3 is DEC-AXPVMS-POSIX-V0200--1.PCSI.c  A           The kit savesets, labelled POSIX020.A to POSIX020.H are @           installed depending on the architecture and version of(           OpenVMS available, as follows:  E           ___________________________________________________________ E           Saveset___Applicability____________________________________d  2           A         all architectures and versions  $           B         VAX architecture  /     1-20 Introduction and General Release Notes  l  )      I                                    Introduction and General Release NotesmI                                1.5 POSIX for OpenVMS Version 2.0 Savesetsc  I               ___________________________________________________________ I               Saveset___Applicability____________________________________   1               C         OpenVMS VAX Version 5.5-2]  /               D         OpenVMS VAX Version 6.0t  /               E         OpenVMS VAX Version 6.1   .               F         Alpha AXP architecture  /               G         OpenVMS AXP Version 2.0r  I               H_________all_architectures_and_versions___________________s  F               For example, installing POSIX for OpenVMS Version 2.0 onG               an Alpha AXP system running OpenVMS AXP Version 2.0 wouldc5               cause Savesets A, F and H to be loaded.            1.6 System Parameters             1.6.1 Missing Parameters  :               If your system already has a pre-Version 2.0:               edition of POSIX for OpenVMS installed, yourD               SYS$SYSTEM:POSIX$PARAMS.DAT system parameter file mustG               be edited to include the following lines, if they are not                already present:                 FORK_MAX 30                SESSION_MAX 0c  =               For more information, see the POSIX for OpenVMSr7               Installation and System Management Guide.c  (         1.6.2 Default Value of {ARG_MAX}  G               The default (and minimum) value of {ARG_MAX} is 8192. ForaF               more information, see the POSIX for OpenVMS Installation*               and System Management Guide.  !         1.6.3 Value of {OPEN_MAX}n  A               The value of {OPEN_MAX} is no longer defined by therF               <limits.h> header file. Instead, the maximum permissibleF               number of open file descriptors is assigned at run-time.  I                               Introduction and General Release Notes 1-21l t  f      *     Introduction and General Release Notes     1.6 System Parametersc    "     1.6.4 Running Out of AST Quota  E           Note that a low UAF quota ASTlm could cause POSIX processescC           to hang. To avoid this, the value of ASTlm (or the SYSGEN @           parameters PQL_MASTLM and PQL_DASTLM) is set to 300 orA           greater. However, operations such as writing far beyondwA           the end of an existing file may cause messages like thea-           following to appear on the console:a  B           %%%%%%%%%%%  OPCOM   2-MAR-1993 17:08:38.83  %%%%%%%%%%%+           Message from user BLOGGS on NERVI 8           %UCX-E-CFS_DATAFAIL, Failed to write file data:           -UCX-I-CFS_FILEID, File NERVI$DKA300:(3536,23,0)>           -UCX-I-CFS_CLUSTER, Virtual blocks 5457 through 54723           -SYSTEM-F-EXQUOTA, process quota exceeded   <           This message merely indicates that the process wasA           momentarily out of AST, but was recovered automatically @           by the POSIX kernel. It does indicate, however, that a@           higher value of ASTlm is desirable for that particular@           application. If, for example, your application does an@           lseek()  operation of 400 Kbytes beyond the end of theD           file, and then performs a write()  operation, it will need#           at least 50 ASTs (400/8).   5     1.7 Using POSIX for OpenVMS Within Mixed Clusters   C           POSIX for OpenVMS Version 2.0 may be installed in a mixed C           (VAX/AXP) cluster environment provided that the following            conditions are met:t  7           o  the version of OpenVMS VAX is 5.5-2 or 6.1r  .           o  the version of OpenVMS AXP is 6.1       1.8 C Compilersu  C           The POSIX for OpenVMS utility, c89, is a POSIX-conformanti=           version of the CC command, which invokes one of thee?           available C compilers. Currently, the VAX C and DEC C A           compilers are supported for VAX systems, while DEC C ist*           supported for Alpha AXP systems.  ?           POSIX for OpenVMS Version 2.0 supplies a C++ compiler A           called cxx. For full details of this utility, see POSIXs<           for OpenVMS Reference Manual: Shell and Utilities.  /     1-22 Introduction and General Release Notes2 r  a      I                                    Introduction and General Release Notes I           1.9 Restrictions on Using POSIX for OpenVMS with other Productsc    G         1.9 Restrictions on Using POSIX for OpenVMS with other Products   D               POSIX for OpenVMS Version 2.0 imposes some limitationsG               on other Digital layered products. The following sections(>               describe the problem areas that currently exist.            1.9.1 DECdtm Version 1.1  E               A POSIX for OpenVMS application can use DECdtm services(G               with the following restriction. The fork() call will fail(C               if a DECdtm transaction is active. If the transaction C               is completed at fork() time, the IEEE Std 1003.1-1990 B               ISO/IEC 9945-1:1990 fork() callable function will be$               executed successfully.  #         1.9.2 VPA and DECps Version   A               As was the case with Version 1.1, POSIX for OpenVMSsB               Version 2.0 and VAX Performance Advisor (VPA) cannotB               be executed on the same system. This is because bothE               systems use the system-wide image/process run-down cell I               EXE$GL_USRUNDWN, and VPA does not permit sharing that cell.   H               If VPA is installed on a system on which POSIX for OpenVMSH               is already installed, it issues an error message and failsE               to start. If POSIX for OpenVMS is installed on a system H               already running VPA, the system fails when data collection               is stopped.t  F               If you have DECps (renamed from VPA) Version 1.0 loaded,I               it must be started only after the POSIX for OpenVMS startuplG               procedure has been executed, or a system crash may occur. G               Specifically, the DECps Data Collector process, DECPS_DC,tF               must not be running when POSIX for OpenVMS is activated.G               This problem will be corrected in the forthcoming versionc               of DECps.   G               Starting POSIX for OpenVMS while the DECps data collectorrI               is actively monitoring the system may result in an eventualh               system BUGCHECK.  @               Since POSIX for OpenVMS is normally started during@               the system startup procedures, a simple proceduralB               workaround is possible. You must follow the steps inB               SYS$MANAGER:SYSTARTUP_V5.COM to start POSIX prior toB               invoking the DECps Data Collector startup procedure,               PSDC$STARTUP.COM.l  I                               Introduction and General Release Notes 1-23     f      *     Introduction and General Release NotesC     1.9 Restrictions on Using POSIX for OpenVMS with other Products     B           If it is necessary to start POSIX for OpenVMS outside of?           the context of SYSTARTUP_V5, that is while the systemo?           is already running, you must shut down the DECps DataoD           Collector with the following command before starting POSIX           for OpenVMS:  %           $  ADVISE COLLECT STOP/WAITn  E           Afterwards, the following command can be used to resume theo           DECps Data Collector:t              $ ADVISE COLLECT START  B           The use of DECps with POSIX for OpenVMS is not currently5           supported due to interoperability problems.u  A           Restrictions on the use of DECps with POSIX for OpenVMSd?           will be removed with a POSIX Patch Kit, which will be >           available after the release of the current POSIX for           OpenVMS kit.  )     1.9.3 DEC TCP/IP Services for OpenVMS   @           The POSIX for OpenVMS Version 2.0 file system does notD           interoperate with DEC TCP/IP Services for OpenVMS V3.1 NFSE           Client. Accordingly, a POSIX for OpenVMS process cannot use            an NFS Client device.c       1.9.4 DECwindows Motif  >           Calls to Motif functions that cause an update of theB           display (for example, XRealizeWidget()),  if called fromA           a POSIX signal handler, may not modify the screen until-E           another Motif event has been occurred, for example, a mouse,           movement.   C           If DECwindows Motif is installed after POSIX for OpenVMS, /           you must re-execute POSIX$CONFIG.COM.a  
     1.9.5 DFSi  A           VAX Distributed File Services (DFS) patch DFS$01_012.A,i?           available through your local support center, corrects.=           an error that occurs when DFS Version 1.2 and POSIX =           for OpenVMS Version 2.0 run on the same system. The =           simultaneous operation of DFS and POSIX for OpenVMS A           prevents the DFS client from accessing files on the DFS C           server. DFS returns the error code SS$_HANGUP. This error14           will not occur on the next version of DFS.  /     1-24 Introduction and General Release Notesl           I                                    Introduction and General Release NotescI           1.9 Restrictions on Using POSIX for OpenVMS with other ProductsG    D               You must install the DFS patch on all systems on whichC               DFS server software is installed. If a client is also D               configured as a server, you must install the DFS patchD               on the client node also. If you do not install the DFSH               patch kit and you run POSIX for OpenVMS Version 2.0, POSIXG               for OpenVMS applications will be unable to open any fileshH               on DFS client devices. DFS will return the error code SS$_               HANGUP.   G               To install this kit, use the VMSINSTAL utility by loggingIH               into the system account and entering the following command                at the DCL prompt:  6               @SYS$UPDATE:VMSINSTAL DFS$01_012.A ddnn:  H               Replace ddnn: with the location of the patch kit save set.I               Reboot the system or cluster after successfully in-stallingl               the kit.  F               Note that while it is possible to mount and access a DFSF               volume from POSIX for OpenVMS, the creation and mountingG               of POSIX Container File Systems is not supported on a DFSn               volume.b  !         1.10 Internationalization   I               POSIX for OpenVMS Version 2.0 supplies the following samplee&               locale definition files:  I               ___________________________________________________________aI               File____________________Language___________________________n  ,               de_de_iso8859_1.lsrc    German  -               en_gb_iso8859_1.lsrc    Englishr  ,               fr_fr_iso8859_1.lsrc    French  I               it_it_iso8859_1.lsrc____Italian____________________________h  C               For more details of internationalisation in POSIX forOF               OpenVMS, see the POSIX for OpenVMS Guide to Programming.      I                               Introduction and General Release Notes 1-25n d  r      *     Introduction and General Release Notes'     1.11 CPU Limits for POSIX Processeso    '     1.11 CPU Limits for POSIX Processesg  C           You can set CPU time limits for POSIX processes using oneo#           of the following methods:   4           o  setting the CPU limit in the UAF record  :           o  using the POSIX command qualifier /TIME_LIMIT  @           OpenVMS Version 6.0 or later supports enabled CPU time1           limits and does not need a patched kit.T       1.12 Record Filess  D           When the READ_RECORD file system option is set, sequentialC           files with either IMPLIED_CC, FORTRAN_CC or PRINT_CC will E           automatically be converted. If no print attribute is found,p(           no interpretation takes place.  C           For example, consider the case of text files that are VARoC           files where the newlines are embedded in the records (for @           example, .MEM files) and where no print attributes areE           present. In this case, you can convert the file manually in '           either of the following ways:o  (           o  Use the DCL CONVERT command  B           o  At the POSIX for OpenVMS shell level, issue a command&              similar to the following:  1              psx> dcl type file.mem > file.streamV  E           The resultant output of the TYPE command is redirected into C           a stream file with the logical contents of the input file            (file.mem).r  '     1.13 The /usr/include Symbolic Linkc  D           Note that at POSIX for OpenVMS startup time, the directoryE           /usr/include is created, along with symbolic links pointing D           to the POSIX$INCLUDE directory. In addition, X11, DXm, MrmD           and Xm are created in the /usr/include directory, pointing           to the DECW$INCLUDE.    /     1-26 Introduction and General Release Notesf O  V      I                                    Introduction and General Release NoteseI                                  1.14 Universal Time in POSIX for OpenVMS     0         1.14 Universal Time in POSIX for OpenVMS  G               OpenVMS system services and POSIX services that deal with C               time exhibit some abnormal behavior at the transitionfD               between standard time and Daylight Savings Time. These-               services include the following:S  +               o  time() and clock_gettime()                   o  clock_settime()  $               o  alarm() and sleep()  .               o  SYS$SETIMR() and SYS$SCHDWK()  B               If POSIX file operations are performed at the end ofC               Daylight Savings Time, the functions stat(), fstat(),e=               and lstat() may also retrieve wrong file times.o  <         1.15 Exiting a POSIX command from a SET HOST Session  H               If you have logged in to the system using SET HOST (doubleG               sethost) and you execute an exit(), the following occurs:n  3               o  your current DCL session is killedr  3               o  the following message is displayede  ?                  %REM-S-END, control returned to node _SBALLO::b>                  %SYSTEM-W-FDT_COMPL, FDT processing completed  F               o  the terminal remains with the POSIX terminal settingsA                  (noecho, past, etc.) instead of with the OpenVMS                   settings.  5         1.16 The POSIX for OpenVMS Sample Applicationt  =               POSIX for OpenVMS Version 2.0 supplies a samplenE               application. The files are contained in POSIX$EXAMPLES,CG               and full details are given in the POSIX for OpenVMS Guide 9               to Programming and in the file READ_ME.DOC._        I                               Introduction and General Release Notes 1-27_ _  _                    I                                                                         2AI         _________________________________________________________________o  I                                      POSIX for OpenVMS Callable Interfacei    H               This chapter lists release notes for the POSIX for OpenVMS!               callable interface.i           2.1 Semaphore Functionsn  G               The maximum number of XPG4 semaphores sets depends on the6I               total number of semaphore elements currently in the system.vH               The global limit is 1024 semaphore elements, assuming that5               no POSIX 1003.1b semaphores are in use.   D               Once a semaphore for a given key is created (using theD               semget(,,IPC_CREAT) call) the values of ipc_perm.mode,H               ipc_perm.uid, ipc_perm.gid and nsems cannot be succesfullyE               changed by another semget(,,IPC_CREAT) on the same key.   G               The suggested workaround is to delete the semaphore first F               with a semctl(,,IPC_RMID) and then to create the new one)               with a semget(,,IPC_CREAT).   C               After the creation of an XPG4 type semaphore-set (via D               semget()), the values of the semaphores in the set are"               initialized to zero.  %               See also Section 2.7.6._           2.2 Curses Applications_  F               Binary compatibility with previous versions of POSIX forF               OpenVMS is now supported by Version 2.0. Depending whichC               curses shareable image files has been linked with the G               curses application, you might have to recompile or relinkc)               the application as follows:   I               o  For POSIX for OpenVMS VAX Version 1.2, POSIX for OpenVMS_H                  AXP Version 1.0, and POSIX for OpenVMS Version 2.0 IFT,I                  the curses shareable image file was called POSIX$CURSES_                   SHR.EXE.a  I                                  POSIX for OpenVMS Callable Interface 2-1     .      (     POSIX for OpenVMS Callable Interface     2.2 Curses Applicationsi    <              In this case, you must relink your application.  >           o  For POSIX for OpenVMS Version 2.0 EFT, the curses?              shareable image file was called POSIXC$CURSES.EXE.t  =              In this case, you must recompile and relink yourK              application.S  A           The curses package directly sends escape sequences thatpC           modify the terminal status, without notifying the OpenVMS <           terminal driver. A typical scenario is as follows:  +           $ SET TERMINAL/APPLICATION_KEYPAD             . . .           $ POSIX            psx> vi somefile            . . .           psx> exitn  C           At this point, the SHOW TERMINAL command reports that thehA           terminal is still in application keypad mode, while thel-           keypad is actually in numeric mode.i  @           This is a curses side-effect that cannot be eliminatedB           without causing other side-effects, so it will remain asB           a permanent restriction of POSIX for OpenVMS. A user canE           resynchronize the OpenVMS terminal driver with the terminalT3           itself by issuing the following commands:o  '           $ SET TERMINAL/NUMERIC_KEYPADn+           $ SET TERMINAL/APPLICATION_KEYPADS  (     2.3 Floating Point Output Conversion  =           All functions that convert floating point values too?           a decimal representation (that is, printf()  group off=           functions, the printw()  group of functions and the C           strfmon()  function) may produce different results on AXP8D           and on VAX systems. The difference, if any, is one unit in&           the least significant digit.  E           As OpenVMS conversion routines on AXP and VAX use different B           rounding algorithms, this difference is not likely to be%           removed in future releases.c  ,     2-2 POSIX for OpenVMS Callable Interface h  t      I                                      POSIX for OpenVMS Callable Interface I                                             2.4 Handling File Descriptors     %         2.4 Handling File Descriptorsa  H               POSIX for OpenVMS Version 2.0 increases the number of fileH               descriptors that can be simultaneously opened by a processG               from 64 to 512: this includes regular files, pipes, FIFOs                and sockets.  I               The constant {OPEN_MAX} is no longer defined in <limits.h>: F               the actual value is subject to change in future releasesH               and can only be retrieved at run time by calling sysconf(_               SC_OPEN_MAX).v  G               The file descriptor mask used by the select() function isMI               now 4096 bits long, and this size is not expected to changelI               in future releases. However, due to a restriction in TCP/IPhG               Services for OpenVMS, the number of file descriptors that E               can actually be monitored is still 64: this restrictionDH               is expected to be removed in an upcoming version of TCP/IP#               Services for OpenVMS.c  H               Similarly, the number of "C standard I/O" streams that canF               be simultaneously opened by a process has been increasedI               from 64 to 128. The constant {STREAM_MAX} in <limits.h> and H               the constant {FOPEN_MAX} in <stdio.h> have been changed to$               reflect the new value.  G               Programs that have been compiled and link under POSIX forMH               OpenVMS Version 1.x and are run under Version 2.0 will notH               be affected by this change, and will still be able to open=               up to 64 file descriptors and up to 64 streams.t  H               It is suggested that FAST_IO be disabled if it is requiredG               that more than 64 file descriptors be open at a time. SeehF               the POSIX for OpenVMS Installation and System Management%               Guide for more details.   =         2.5 POSIX$CFS_SERVICES Error Messages and the Console   E               Wherever an operation (such as a system call) performediI               using the low level file system services POSIX$CFS_SERVICESEC               fails, an error message is sent to operator (and thus E               logged in the file operator.log) and to the console. IfAG               the send operation to the operator fails, a backup systemoH               is available to signal the abnormal condition: this writesI               directly by $QIO to the channel returned by translating the H               logical name POSIX$CFS_FATAL_MESSAGES (by default _OPA0:).G               If the the device is available but unable to performe thei  I                                  POSIX for OpenVMS Callable Interface 2-3            (     POSIX for OpenVMS Callable Interface9     2.5 POSIX$CFS_SERVICES Error Messages and the Console     ?           $QIO operation, the POSIX for OpenVMS file system may B           temorarly hang until the device will be ready to perform#           the queued I/O operation.,       2.6 Asynchronous Safety   >           By asynchronous safety, it is meant the ability of aD           function to produce correct results, even if its executionC           is interrupted by an asynchronous event, and the functionmC           itself is recalled in the interrupting context. DependingXB           on what type of asynchronous events is being considered,E           asynchronous safety can be further characterized as "signalt?           safety", "thread safety" and "AST safety" (ASTs are a >           native OpenVMS mechanism for generating and handling@           asynchronous events). Generally speaking, asynchronousB           safety may be achieved either by coding a given function>           in a reentrant way, or by temporarily inhibiting any>           asynchronous events that can cause the activation of@           a different execution thread in the context of a given           process.  B           In the POSIX world things are further complicated by the>           fact that certain functions, as originally developed<           and subsequently standardized, have a user visibleC           interface that makes an asynch-safe implementation eitheraD           impossible or very cumbersome: for example, ttyname()  andB           localtime().  For most of such functions, draft 6 of theA           POSIX threads standard (P1003.4a/D6) proposes alternatew>           forms whose user visible interfaces do not have this           drawback.r  B           In POSIX for OpenVMS, asynchronous safety is the generalA           rule, subject to a small number of exceptions and a fewi           comments.e  8     2.6.1 Functions Whose Interface Prevents a Reentrant           Implementation  B           The functions listed in the left column of the following=           table have a user visible interface that prevents an@           reentrant implementation, and therefore are not async-?           safe in POSIX for OpenVMS. The right column shows the 0           corresponding alternate forms, if any.    ,     2-4 POSIX for OpenVMS Callable Interface r  e      I                                      POSIX for OpenVMS Callable InterfacesI                                                   2.6 Asynchronous Safety   I               ___________________________________________________________ I               Async-unsafe__Async-safe_variant___________________________o  '               asctime()     asctime_r()                  catgets()   *               ctermid()     ctermid_r()[1]  %               ctime()       ctime_r()                  cuserid()[1]  %               drand48()     erand48()i                 gamma()D               (VAX)A  &               gamma()       __lgamma()               (AXP)e                 gethostbyaddr()u                 gethostbyname()   +               getgrgid()    getgrgid_r()[2]s  +               getgrnam()    getgrnam_r()[2]i  (               getlogin()    getlogin_r()                 getnetbyaddr()                 getnetbyname()                 getnetent()r                 getprotobyname()                  getprotobynumber()                 getprotoent()t  +               getpwuid()    getpwuid_r()[2]   +               getpwnam()    getpwnam_r()[2]t                 getservbyname()                  getservbyport()   I               [1]The_functions_ctermid()_and_cuserid()_are_already_______e  F               async-safe if they are called with a non-NULL parameter.H               For this reason, the function ctermid_r() has been removedG               in P1003.4a/D7, and may be dropped in a future release of                 POSIX for OpenVMS.D               [2]The functions getgrgid_r(), getgrnam_r(), getpwnam_E               r() and getpwuid_r() were introduced in P1003.4a/D6 and I               removed in P1003.4a/D7, because they are not really usable. H               They are implemented in POSIX for OpenVMS Version 2.0, but1               may be dropped in a future release.c  I                                  POSIX for OpenVMS Callable Interface 2-5            (     POSIX for OpenVMS Callable Interface     2.6 Asynchronous Safety   E           ___________________________________________________________sE           Async-unsafe__Async-safe_variant___________________________   "           gmtime()      gmtime_r()             lcong48()c             lgamma()           (VAX)O  "           lgamma()      __lgamma()           (AXP)   #           lgammaf()     __lgammaf()t           (AXP)F  #           lgammal()     __lgammal().           (AXP)z  %           localtime()   localtime_r()   !           lrand48()     nrand48()m  !           mrand48()     jrand48()               rand()        rand_r()  #           readdir()     readdir_r()_             seed48()  "           srand()       not needed  "           srand48()     not needed  "           strtok()      strtok_r()  #           ttyname()     ttyname_r()n  E           wcstok()______wcstok_r()___________________________________t  "     2.6.2 Process-Wide Information  D           Functions that manipulate information items that belong to=           the entire process are not, in general, async safe.O  C           o  The function getopt()  is not async-safe, because onlydE              one execution thread can meaningfully scan the argumentsa9              of the main()  function in a sequential way.c  ;           o  The functions localeconv(),  nl_langinfo() and @              strerror()  return a pointer to a data area that isC              not allocated by the caller; these functions can yieldt9              incorrect results in the following scenario:q  C              1. thread A calls nl_langinfo()  and obtains a pointer   #              2. thread reschedulingd  *              3. thread B calls setlocale()  ,     2-6 POSIX for OpenVMS Callable Interface t  o      I                                      POSIX for OpenVMS Callable InterfaceRI                                                   2.6 Asynchronous Safetys    '                  4. thread reschedulingl  G                  5. thread A uses a pointer that may be no longer valido  E               o  A similar case may happen with getenv() on one side, D                  and putenv(), setenv() and clearenv()  on the other                  side.  D               o  The IEEE FP Control Register, whose contents may beH                  manipulated by means of the macro ieee_fp_control(), isG                  saved and restored by the thread scheduler upon threadtI                  switching, but not when a POSIX signal or an OpenVMS AST )                  is delivered. (AXP only)m  B               o  The Floating Point Control Register (FPCR), whoseE                  rounding bits can be queried and set by means of thenB                  macros FLT_ROUNDS and __SET_FLT_ROUNDS() (see theG                  public header <float.h> for more details) is a processyF                  wide resource that is never saved and restored by the                   implementation.  $         2.6.3 Standard I/O Functions  ?               All C Standard I/O functions that, explicitely oroE               implicitely, deal with a FILE pointer are async-safe by G               default. Going deeper in detail, several cases can occur:   E               o  If a program has not been linked with the DECthreadsUE                  library, these functions can be called from a signaliG                  handler or an AST handler, provided that the signal orbF                  AST has not interrupted another Standard I/O functionF                  that operates on the same stream. In the latter case,G                  the I/O function fails and sets errno to [EBUSY]. This H                  asynchronous safety feature may be disabled on AXP onlyI                  by calling set_reentrancy (C$C_NONE) at the beginning ofsF                  the program, or by compiling the main() function with.                  the option -Wreentrancy=none.  A               o  If a program has been linked with the DECthreadsPC                  library, Standard I/O functions are protected bothgE                  against other threads (with the mechanism defined byyF                  P1003.4/D6) and against asynchronous events (with theC                  mechanism described above). In this case it is note9                  possible to disable asynchronous safety.r  I                                  POSIX for OpenVMS Callable Interface 2-7c l  d      (     POSIX for OpenVMS Callable Interface     2.6 Asynchronous Safety     E           o  The functions flockfile()  and funlockfile() (introduced E              by P1003.4/D6) are essentially no-ops if the program haso9              not been linked with the DECthreads library.a       2.6.4 Other Functionsc  C           All other functions are completely async-safe by default,uA           but this feature may be disabled on AXP only by calling D           set_reentrancy (C$C_NONE) at the beginning of the program,@           or by compiling the main()  function with the option -           Wreentrancy=none.   6           None of the curses functions are async-safe.       2.7 Callable Functions  =           The following sections document individual callable            functions:       2.7.1 execvp()  >           Programs compiled and linked under POSIX for OpenVMSD           Version 1.x that call execvp()  to execute a shell script,C           do not work correctly in Version 2.0: the symptom is thatbB           the shell script does not receive the correct arguments.E           The problem disappears if these programs are recompiled andl           relinked.m  E           The problem is under investigation, and will be fixed in an            upcoming release.        2.7.2 fcntl()a  D           If your application calls the fcntl()  function specifying@           the F_GETLK file control command, and your process hasD           reached its enqueue-limit (ENQLM) quota, the function call<           fails and the [ENOLCK] error is returned in errno.  >           By default, the function call fcntl(F_GETLK) returnsC           information on the oldest blocking lock, if any. Defining A           the logical name POSIX$GETLK_ALT causes the function toiB           return information on the blocking lock (if any) nearest$           the beginning of the file.  E           Note, however, that this default behavior and the switching28           mechanism might change in the future releases.  ,     2-8 POSIX for OpenVMS Callable Interface S  f      I                                      POSIX for OpenVMS Callable Interface I                                                    2.7 Callable Functions              2.7.3 fork()  B               A process started with the debug flag cannot fork().D               Accordingly, the debug flag cannot be inherited across                fork() operations.  B               If a POSIX process is linked against or uses OpenVMSC               products such as SQL/RDB that use protected shareable D               libraries, fork() will fail. This is already stated inC               the documentation, but is repeated here for emphasis.l           2.7.4 fwrite()  G               An inconsistency between ISO C and the X/Open Portabilityl9               Guide Issue 4 exists in the following case:E  ,               fwrite (buf, 0, 10, mystream);  G               That is, a request is made to write 10 zero-length items.o  D               In such cases, ISO C requires that the return value ofH               fwrite() be 10, while the X/Open Portability Guide Issue 4               requires zero.  C               POSIX for OpenVMS follows the XPG4, and returns zero.l           2.7.5 getenv()  >               The functions getenv(), putenv(), setenv(),  andG               clearenv() are implemented in an async-safe way, so other H               threads and/or signal catching functions cannot modify theI               environment list in an untimely manner. However, the returndH               value of getenv() directly points to the environment list:E               if a thread (or the mainline program) is processing the B               string returned by getenv() and another thread (or aE               signal catching function) interrupts it and changes theeE               environment list, the original thread can have its datas#               suddenly invalidated.C  H               A general solution for this problem is being investigated.C               In the meanwhile, you are cautioned not to modify thenH               environment list from contexts other than the main thread.           2.7.6 sem_init()  E               The POSIX for OpenVMS implementation of sem_init() doestH               not support the use of an S0 address as the first argument               (sem_t *).  I                                  POSIX for OpenVMS Callable Interface 2-9c e  o      (     POSIX for OpenVMS Callable Interface     2.7 Callable Functions         2.7.7 sysconf()  and open()   B           There is an inconsistency between open()  and sysconf().  D           In POSIX for OpenVMS POSIX for OpenVMS, the maximum numberE           of files that can be opened by a process has been increased C           beyond the old limit of 64; nothwithstanding this change,c@           programs that have been compiled and linked under V1.xB           don't see any change in behaviour, as all functions thatE           return a file descriptor, such as open(),  creat(), pipe(),e@           dup(),  dup2(), fcntl(F_DUPFD), accept() and socket(),3           still fail if the result would excede 63.   <           However, the old behaviour has not been completelyB           preserved, because existing programs that call sysconf(_E           SC_OPEN_MAX) now see 512 (the actual Version 2.0 value) and "           not 64 (the V1.x value).  D           This inconsistent behaviour of sysconf()  will be fixed in(           the final Version 2.0 version.       2.7.8 system()  <           If no shell is available to process a command, theB           following call should return zero, but currently returns           1:             system (NULL)   @           This problem will be corrected in an upcoming release.       2.7.9 tcsetattr()   A           A process hang (deadlock condition) may occur due to an =           improper use of the tcsetattr()  callable function.e  C           If a process modifies its controlling terminal attributes1>           at the same time that another process, with the sameA           controlling terminal, requests a read()  operation, and C           those terminal attributes are modified in such a way that E           read()  is prevented from completing, under certain specialnA           timing conditions, the tcsetattr()  function may not bet           able to complete.   @           It might happen that during a fork()  function call, a?           child process explicitly issues a tcsetattr()  on thedB           inherited controlling terminal at the same time that theA           parent process issues a read(),  or that tcsetattr() isl  -     2-10 POSIX for OpenVMS Callable Interface     e      I                                      POSIX for OpenVMS Callable Interface I                                                    2.7 Callable Functions     E               called implicitly, for example by a DCL command using a %               system() function call.   I               If such a condition occurs, the terminal setting request is F               queued indefinitely, waiting for the read() to complete,D               and the process apparently hangs. If the read() is notF               able to complete, the process will never end and must be               killed.h  @               There are two workarounds to avoid this condition:  I               o  Pay attention that your terminal setting does not change G                  any pending read() termination condition. Consider thefD                  fact that your application may also use tcsetattr()F                  implicitly, as in the case of a spawning DCL command.  D               o  Avoid the timing condition that causes the terminalF                  setting request to be queued after a read() call thatC                  was unable to complete. To prevent this you shouldrG                  synchronize the tcsetattr() and read() actions in your F                  forked processes to avoid their executing at the same                  time.  D               The tcsetattr() function may fail if it is not able toH               perform one of the requested actions, even if at least one.               of the actions can be performed.  F               When two processes that are sharing the output terminalsE               issue a read() and a tcsetattr() at the same time, they G               may hang. This is because the tcsetattr() may prevent theo%               read() from completing.e           2.7.10 tzset()  G               POSIX for OpenVMS does not support values of TZ beginning E               with a colon (:) and is not expected to support them in G               the foreseable future. However, if the first character of G               TZ is a colon, the function tzset() does not recognize it H               and mistakenly interprets the colon as the first character#               of the timezone name.r  D               This problem will be corrected in an upcoming release.      I                                 POSIX for OpenVMS Callable Interface 2-11     o      (     POSIX for OpenVMS Callable Interface     2.7 Callable Functions          2.7.11 wait()  and waitpid()  E           The functions wait()  and waitpid() may report wrong status >           information if the child process has been terminatedD           because of a signal, and the signal has not been generatedD           by one of the functions kill(),  raise() or sigqueue(): inD           other words, when the signal has been generated because of           an exception.d  E           When this problem occurs, the macros that decode the status 3           information return the following results:m             WIFSIGNALED() falses             WIFEXITED()   true  +           WEXITSTATUS() 191 + signal_number   >           The signals that may cause this behaviour are listed>           below, along with the corresponding wrong results of           WEXITSTATUS():             SIGILL        195              SIGTRAP       196              SIGEMT        198f             SIGFPE        199_             SIGBUS        201_             SIGSEGV       202              SIGSYS        203a  A           As a consequence of this problem, the shell erroneously_D           reports the termination of processes that have experienced           an exception.   <           This problem will be fixed in an upcoming release.       2.7.12 wordexp()  8           The WRDE_NOCMD flag in the wordexp()  function<           does not work as specified by IEEE Std 1003.2-1992A           ISO/IEC DIS 9945-2. Instead, it turns on the -n flag to            the underlying shell.g  -     2-12 POSIX for OpenVMS Callable Interfacen r  2      I                                      POSIX for OpenVMS Callable Interface I                                                    2.7 Callable Functions              2.7.13 write()  D               When a disk is almost full, a write() at the end of anF               existing file may successfully transfer fewer bytes thanH               might be expected to fit in the remaining free space. ThisH               is due to problems in allocating the last free blocks on aG               disk. However, if the number of free blocks on the devicea@               is always 20 or more, this problem does not occur.  H               Note that the write() function has no effect on files withF               any format other than Stream_LF. A call to write() failsF               ("inappropriate operation for file type") if the file isH               variable length record format. If the file is fixed lengthG               record format, write() does not fail but no modificationsp(               are performed to the file.  *         2.8 POSIX for OpenVMS Header Files  F               The following table lists and describes the header filesE               supported by the POSIX for OpenVMS Version 2.0 kit. The F               header source files are machine-readable, and located in)               SYS$COMMON:[POSIX$INCLUDE].s  >               <aio.h>             asynchronous I/O definitions  :               <assert.h>          verify program assertion  /               <complex.h>         class librarya  3               <complex.hxx>       C++ class librarya  5               <cpio.h>            cpio archive valuesa  1               <ctype.h>           character typeso  <               <curses.h>          curses library definitions  =               <dirent.h>          format of directory entries   :               <env.h>             environment declarations  :               <environ.h>         environment declarations  6               <errno.h>           system error numbers  6               <fcntl.h>           file control options  9               <file.h>            file control statements   :               <float.h>           floating point constants  >               <fnmatch.h>         pattern matching definitions  /               <fstream.h>         class library   I                                 POSIX for OpenVMS Callable Interface 2-13o e  u      (     POSIX for OpenVMS Callable Interface&     2.8 POSIX for OpenVMS Header Files      /           <fstream.hxx>       C++ class libraryl  1           <ftw.h>             file tree traversal   +           <generic.h>         class library   /           <generic.hxx>       C++ class library   6           <glob.h>            glob symbols definitions  -           <grp.h>             group structure_  :           <iconv.h>           codeset conversion structure  B           <ieee.h>[3]         interface to the IEEE floating point.                               control register  9           <in.h>              sockets datatypes structurel  E           <inet.h>            sockets Internet address data structures  +           <iomanip.h>         class librarye  /           <iomanip.hxx>       C++ class librarye  +           <iostream.h>        class library   /           <iostream.hxx>      C++ class library)  <           <langinfo.h>        language information constants  ?           <limits.h>          implementation-specific constantse  -           <locale.h>          category macros   2           <malloc.h>          memory allocation[1]  7           <math.h>            mathematical declarationst  B           <math_dpml.h>[3]    native OpenVMS mathematics functions%                               support   0           <memory.h>          memory handling[2]  6           <mman.h>            memory mapping structure  6           <monetary.h>        monetary type definition  6           <mqueue.h>          memory queue definitions  6           <mtio.h>            magnetic tape operations  @           <netdb.h>           sockets Internet support structure  +           <new.h>             class library   E           [1]Note_that_the_<malloc.h>_header_file_is_an_empty_place-_   B           holder. This functionality is not supported by the POSIX&           for OpenVMS Version 2.0 kit.?           [2]Note that use of <memory.h> has been superseded by C           <string.h>, and is maintained for backward compatibility. #           [3]Alpha AXP systems onlyd  -     2-14 POSIX for OpenVMS Callable Interface  c  e      I                                      POSIX for OpenVMS Callable InterfaceiI                                        2.8 POSIX for OpenVMS Header Filesc      3               <new.hxx>           C++ class library   ,               <nl_types.h>        data types  /               <objection.h>       class library   3               <objection.hxx>     C++ class library   >               <posixdef.h>        product-specific definitions  4               <pwd.h>             password structure  @               <reentrancy.h>      support structure for the set_7                                   reentrancy() functionl  =               <regex.h>           regular expression handlingO  A               <regexp.h>          regular expression declarationss  B               <rtfiles.h>         realtime files support structure  9               <sched.h>           scheduling declarationsm  /               <search.h>          search tables   E               <semaphore.h>       POSIX binary semaphore special file 1                                   characteristics-  @               <setjmp.h>          stack environment declarations  1               <signal.h>          signals symbolsf  E               <stdarg.h>          support for functions with variabler5                                   number of argumentsn  4               <stddef.h>          C language symbols  @               <stdio.h>           standard buffered input/output  /               <stdiostream.h>     class librarym  3               <stdiostream.hxx>   C++ class librarye  >               <stdlib.h>          standard library definitions  /               <stopwatch.h>       class library-  3               <stopwatch.hxx>     C++ class library   /               <stream.h>          class librarye  3               <stream.hxx>        C++ class library   3               <string.h>          string operations   3               <string.hxx>        string operationsr  /               <strstream.h>       class library   3               <strstream.hxx>     C++ class libraryw  7               <sys/ioctl.h>       I/O control structure   I                                 POSIX for OpenVMS Callable Interface 2-15b    a      (     POSIX for OpenVMS Callable Interface&     2.8 POSIX for OpenVMS Header Files      ?           <sys/ipc.h>         XPG4 inter-process communicationsg/                               support structurey  =           <sys/msg.h>         message queue support structure   @           <sys/sem.h>         XPG4 binary semaphore special file-                               characteristicst  9           <sys/shm.h>         XPG4 shared memory handlingi  0           <sys/socket.h>      sockets defintions  <           <sys/stat.h>        data returned by stat function  @           <sys/times.h>       file access and modification times(                               structures  (           <sys/types.h>       data types  3           <sys/utsname.h>     system name structure   6           <sys/wait.h>        declarations for waiting  >           <tar.h>             extended tar archive definitions  +           <task.h>            class librarye  /           <task.hxx>          C++ class library   ;           <tcp.h>             sockets TCP support structure   7           <termios.h>         define values for termios   (           <time.h>            time types  +           <timeb.h>           time handling   -           <ulimit.h>          ulimit commandsn  D           <unctrl.h>          character conversion control structure  =           <unistd.h>          standard symbolic constants andd(                               structures  *           <unixio.h>          I/O handling  *           <unixlib.h>         I/O handling  E           <utime.h>           access and modification times structure   ;           <varargs.h>         handle variable argument liste  +           <vector.h>          class library   /           <vector.hxx>        C++ class libraryw  C           <vms_posix_         POSIX for OpenVMS-specific extensionse           extensions.h>i  >           <wchar.h>           wide-character support structure  -     2-16 POSIX for OpenVMS Callable Interface     p      I                                      POSIX for OpenVMS Callable Interface I                                        2.8 POSIX for OpenVMS Header Files       C               <wordexp.h>         word expansion symbol definitions   F               Note that if you compile under the POSIX shell a programA               that includes any DECwindows headers, sometimes the F               "standard C" headers are picked from the wrong location,A               and this in turn can cause compile-time errors. SeelG               Section 3.7.3 for details of how to avoid this situation.h           2.9 Special Filesr  E               Special files can be created only in the Container FileuD               System. However, you can create real-time files in theF               OpenVMS file system provided they adhere to OpenVMS file!               naming conventions.o  F               You must delete any binary semaphore, shared memory, andH               message queue special files that were created using any ofG               the previous VMS POSIX Field Test kits, and recreate them I               as needed using the POSIX for OpenVMS Version 2.0 software.            2.9.1 Pipesh  H               If the reading process becomes a zombie (that is, it dies)E               all information from a pipe may be lost, unless anotherc-               reader is attached to the pipe.I                                      I                                 POSIX for OpenVMS Callable Interface 2-17  w                       I                                                                         3 I         _________________________________________________________________   I                           POSIX for OpenVMS Shell Interface and Utilitiesr    H               This chapter describes release notes relating to the POSIX.               for OpenVMS shell and utilities.  C               Note that the IEEE Std 1003.2-1992 ISO/IEC DIS 9945-2 D               standard stipulates that options should always precede/               the operands on the command line.            3.1 Temporary Fileso  >               This section relates to the following utilities:                 o  lex                 o  patch                 o  viu                 o  yacc   D               On activating these utilities, the following error may               arise:                 File too large  G               This message is displayed whenever one of these utilitiesaG               tries to create temporary files in the /tmp directory (onnE               the system disk), thereby exceeding system disk quotas.   C               When the user account is on the system disk (that is, F               when there is only one disk available), it is the systemC               manager's responsibility to adjust system disk quotaslG               appropriately. When the user account is not on the systemaD               disk, the POSIX$CONFIG procedure can be used to createA               a default container (hosting the /tmp directory) on H               another disk with higher quotas. See the POSIX for OpenVMSC               Installation and System Management Guide for details.a  I               See Section 3.7.6 for details of temporary files created by                c89.  I                       POSIX for OpenVMS Shell Interface and Utilities 3-1     l      3     POSIX for OpenVMS Shell Interface and Utilities      3.2 The POSIX Commandm         3.2 The POSIX Command   A           The following sections list release notes involving the            POSIX command.  5     3.2.1 The POSIX Command and the /OUTPUT Qualifier   C           If you execute a the POSIX program with the POSIX command C           and the /OUTPUT qualifier, the output generated by a call D           to the printf()  function will not print out if the output0           string is not terminated by a newline.  <           Given the following program (called test_program):             main()           {w+               printf ("aaaaaaaaaaaaaaaaa");            }r  B           nothing is written to the standard output if the program8           was activated with the following command line:  1           psx> posix/output=datafile test_programd  9           The following update to test_program will work:t             main()           {t-               printf ("aaaaaaaaaaaaaaaaa\n");e           }d  0     3.2.2 The POSIX Command and Shared Libraries  3           The POSIX command may hang if the library B           SYS$SHARE:CMA$TIS_SHR.EXE is deinstalled after POSIX has?           started. Please make sure that this library is always *           installed with /OPEN/HEAD/SHARE.  5     3.3 OpenVMS Command Procedures and POSIX Commandsl  D           If you execute a shell script from a DCL command procedureB           and the shell script includes a POSIX command that reads?           from standard input, the shell script ends during the 3           execution of such a command. For example:   7     3-2 POSIX for OpenVMS Shell Interface and Utilitiesa o         I                           POSIX for OpenVMS Shell Interface and Utilities I                         3.3 OpenVMS Command Procedures and POSIX Commands                    $ type script.kshh,               echo Starting shell script ...               set -x               date               cat                uname -s&               echo End of shell script               $n                $ type dclproc.comH               $ write sys$output "Starting the DCL command procedure..."A               $ write sys$output "Executing the shell script ..."t#               $ write sys$output "" 0               $ posix posix$bin:sh. "script.ksh"@               $ write sys$output "End of shell script execution"               $ show timetI               $ write sys$output "End of DCL command procedure execution"c               $ exit               $                $ @dclproc.com3               Starting the DCL command procedure...o,               Executing the shell script ...'               Starting shell script ...i               + date.               Fri Dec 10 11:06:52 CET DST 1993               + cat   +               End of shell script executionn"               11-DEC-1993 11:06:524               End of DCL command procedure execution               $n  D               The workaround is to define the SYS$INPUT logical nameC               as SYS$COMMAND prior the execution of the DCL command $               procedure, as follows:                      I                       POSIX for OpenVMS Shell Interface and Utilities 3-3S A  (      3     POSIX for OpenVMS Shell Interface and UtilitiesS5     3.3 OpenVMS Command Procedures and POSIX Commandsh    -           $ define/user sys$input sys$commande           $ @dclproc.com/           Starting the DCL command procedure...:)           cExecuting the shell script ... #           Starting shell script ...E           + date*           Fri Dec 10 11:11:33 CET DST 1993           + cat 0           This line is entered from the terminal           ^D           + uname -s           POSIX_for_OpenVMSh$           + echo End of shell script           End of shell script   '           End of shell script execution            11-DEC-1993 11:11:580           End of DCL command procedure execution           $   3     3.4 Shell Scripts inside DCL Command Procedures   >           When a shell script is executed inside a DCL command@           procedure, the output of the commands that follows any?           command that requests input from the terminal may not B           be shown. For example, two files test1.sh and test2.com,           where:  $           o  test1.sh is as follows:                set -x               cat              ls   %           o  test2.com is as follows:a  +              posix posix$bin:sh. "test1.sh"n  2           Executing the file test2.com as follows:             $ @test2           + cat       7     3-4 POSIX for OpenVMS Shell Interface and Utilities     d      I                           POSIX for OpenVMS Shell Interface and UtilitieseI                                          3.5 Cut and Paste Buffer Supporto    (         3.5 Cut and Paste Buffer Support  C               If you use the mouse to deposit a string in an window E               running POSIX for OpenVMS, only the first 80 characters D               are accepted. All the rest are discarded. This problemI               does not occur if you work with a direct account connection >               (using CLI=POSIX in your account specification).           3.6 aliasr  F               The -t option to alias should define each name specifiedC               on the command line as a tracked alias. This does nots'               currently work correctly.r           3.7 c890  >               The following issues are known to relate to c89:  !         3.7.1 Using the -W OptionO  E               The -W option accepts more than one argument at a time.I;               Arguments are divided by commas, for example:o  '               c89 -Wc,KEY1,KEY2 progr.c   D               A single -W option will also accept arguments for both/               compiler and linker, for example:a  3               c89 -Wc,KEY1,KEY2,l,KEY3,KEY4 progr.cr  A               In this example, KEY1 and KEY2 are keywords for thenH               compiler, while KEY3 and KEY4 are keywords for the linker.  H               Note that the argument to -Wshould not contain spaces. The:               following command line would cause an error:  (               c89 -Wc,KEY1, KEY2 progr.c  B               Note that this functionality also applies to the cxx               utility.  B               While compiling with the -g (debug) or -O (optimize)G               option, the user can also use -W to select a c89 compilerd               option:   +               c89 -g -W debug=traceback a.c +               c89 -O -W optimize=inline a.ca  D               Note that it is not permitted to specify only -W debug$               without the -g option.  I                       POSIX for OpenVMS Shell Interface and Utilities 3-5  w         3     POSIX for OpenVMS Shell Interface and Utilities      3.7 c89i    @           This functionality also applies to cxx as well as c89.       3.7.2 #module Directives  C           The #module directive is VAX C specific. The c89 compiler @           exploits it to ensure that the produced object modulesE           have the proper module names and not those derived from the            temporary file names.r  B           However, a few characters otherwise allowed in filenamesD           are not accepted by VAX C within parameters to the #module>           directive: the first parameter must be a valid VAX C@           identifier, made up from the following characater set,4           and not more than 31 characters in length:             A-Z a-z 0-9 $ _n  6     3.7.3 Compiling with DECwindows Motif Header Files  =           If you compile under the POSIX shell a program that C           includes any DECwindows Motif headers, like <X11/Xlib.h>, D           sometimes the "standard" headers are picked from the wrongC           location, and this in turn can cause compile-time errors.a  D           This problem will be completely fixed in a future release.E           In the meanwhile, you can bypass it by taking the followingo           two actions:  D           1. Be sure that the logical name SYS is defined, either inC              the group or in the system table, using a command like               the following:   .              $ DEFINE/GROUP SYS POSIX$INCLUDE:  D              (In general, a group definition is to be preferred over"              a system definition.)  A           2. Include a -I option on the c89 command line: you canyD              supply "-I ." if your compilation command does not need              this option.e  ?     3.7.4 Compiling and Linking with POSIX C Run Time Librariess  ?           In order to compile C source files in the OpenVMS DCLs?           environment that are to be linked against the POSIX C @           Run Time Libraries, the following qualifiers should be           specified:  ;           CC/PREFIX=(ALL_ENTRIES,RTL=POSIXC$) POSIX_PROGRAMe  7     3-6 POSIX for OpenVMS Shell Interface and Utilities  r         I                           POSIX for OpenVMS Shell Interface and Utilities I                                                                   3.7 c89     4         3.7.5 Generating a Process Dump for an Image  I               If you generate an image using c89, the image name field of I               the image header is not the same as the executable filename H               generated in the link phase. Instead it is the name of the,               temporary file created by c89.  !         3.7.6 c89 Temporary Filesd  G               The c89 compiler creates temporary files in the directoryrD               specified by the user according to the rules describedB               in the POSIX for OpenVMS Reference Manual: Shell andB               Utilities. In some cases (the -g and -T options) theI               temporary files are intentionally left in that directory by H               the compiler. If the environment variables used to specifyE               the directory point to a location in the container file F               system, it is responsibility of the user to delete theseE               file after the use: they are not visible from the POSIX E               environment, but can only be seen via a DCL DIR commanddG               on the translation of the POSIX pathname associate to thel               directory.  :         3.7.7 Comparison of c89 Options and OSF cc Options  G               The following table compares the options supported by the G               POSIX for OpenVMS c89 utility with those supported by thee               OSF cc utility.   I               ___________________________________________________________nI               OSF___________________POSIX________________________________   &               -c                    -c  &               -g                    -g  1               -w                    -Wc,nowarningo  :               -O0                   -Wc,optimize=option[2]               -O1[1]               -O2                -O3n  7               -no_inline            -Wc,optimize=nolinel  &               -S                    -S  I               [1]of_this_group,_-O1_corresponds_to_the_POSIX_c89_option__t                 -OI               [2]for the full range of possible values of option, see the ,               OpenVMS Help facility for DECC  I                       POSIX for OpenVMS Shell Interface and Utilities 3-7  4  a      3     POSIX for OpenVMS Shell Interface and Utilitiest     3.7 c89   E           ___________________________________________________________ E           OSF___________________POSIX________________________________   "           -P                    -P  "           -E                    -E  "           -D                    -D  "           -I                    -I  "           -o                    -o  2           -std                  -W relaxed_ansi[3]  )           -std0                 -W common   )           -std1                 -W ansi89   )           -traditional          -W common   2           -Zp                   -Wc,nomember_align  3           -signed               -Wc,nounsigned_charm  1           -unsigned             -Wc,unsigned_char   7           -float                -Wc,precision=option[4]t  )           -fprm n               -Wround=Nh  )           -fprm m               -Wround=M   )           -fprm c               -Wround=Cs  )           -fprm d               -Wround=Du  ,           -ieee_with_inexact    -Wieeefloat2E           [3]not_an_exact_equivalence________________________________h  E           [4]option_may_be_either_"single"_or_"double"_______________s  
     3.8 chmode  B           Using chmod with the equals sign (=) as an argument doesB           not change the "execute" permission of the "others" partC           of the permission array. It is advisable to use the octal ,           definition for permission setting.       3.9 cxxr  9           See Section 3.7.1 for details of the -W option.e  7     3-8 POSIX for OpenVMS Shell Interface and UtilitiesP X  r      I                           POSIX for OpenVMS Shell Interface and UtilitiesrI                                                                 3.10 datei             3.10 date   2               The +%C format is not yet supported.           3.11 dcl  C               The following release notes apply to the dcl utility.   G         3.11.1 Using with Commands that Change Terminal Characteristics   F               When using the dcl command, you cannot use some commandsF               that use or reset terminal characteristics. For example,G               you should not use the dcl command to set terminal width.e  -         3.11.2 Type-ahead Characters are Losty  B               When you are using the POSIX for OpenVMS shell, someF               type-ahead characters may be lost after entering the dcl               command.  '         3.11.3 Shutting the System Downm  G               Note that it is not possible to shut down the system from                within dcl.r  4         3.11.4 Using telnet and POSIX$CLI as the CLI  I               If you log in to a POSIX for OpenVMS system as follows, and I               use the dcl command, the command completes successfully but 1               no output is written to the screen:r  D               o  using telnet (instead of SET HOST) to log in to the                  system   ;               o  specifying /CLI=POSIX$CLI while logging inI  G               A workaround is to redirect the output, instead of to the 3               screen, to a file or another command.            3.12 df   I               If the df utility is used on a volume set, it only displays G               the date of the first volume in the set instaed of giving D               values (free nodes, free blocks and so on) for all the               volumes.  I                       POSIX for OpenVMS Shell Interface and Utilities 3-92 O  C      3     POSIX for OpenVMS Shell Interface and Utilitiess     3.13 dus         3.13 du   ?           The -k option, as documented in the POSIX for OpenVMSiA           Reference Manual: Shell and Utilities, is not currentlye           implemented.       3.14 ed   A           The -x option, documented in the online Help and by the >           man utility, is not implemented in POSIX for OpenVMS           Version 2.0.  
     3.15 echoi  >           The \c escape sequence (which suppresses the newline@           character following the final argument in output) doesD           not function as documented after commands have been issuedD           that set line editing characteristics (for example, set -o(           vi). The effect is as follows:  )           psx> echo 'foooooooooooooooo\c')           psx> oooooooooooo            psx>  #           instead of the following:a  )           psx> echo 'foooooooooooooooo\c'r           foooooooooooooooopsx>            psx>  A           The echo utility fails with the \c escape sequence wheneA           either the vi or emacs shell editors are used. To avoidt?           this problem use the appropriate one of the following            commands:S             psx> set +o vi           psx> set +o emacs        3.16 exo  E           The -r and -x options, documented in the online Help and by C           the man utility, are not implemented in POSIX for OpenVMS            Version 2.0.    8     3-10 POSIX for OpenVMS Shell Interface and Utilities m         I                           POSIX for OpenVMS Shell Interface and UtilitieseI                                                               3.17 gencatn             3.17 gencat   3               The -h option is no longer supported.            3.18 id   A               The id command is not yet able to access any user's D               grouplist, and therefore the supplied functionality isH               limited to the current user's grouplist (POSIX for OpenVMS-               AXP Version 1.0 functionality).            3.19 lex  E               The %k mechanism, which declares the size of the packed 0               character table, is not supported.           3.20 line   D               When an EOF is typed, line does not currently return aG               negative value as it should. Instead, a negative value ismH               returned only when the EOF is the first character entered.           3.21 lne  G               When the -s option is used to create a symbolic link, the G               path of the existing file must not contain other symbolicI               links.  G               The ln utility, when invoked with the -i option, does notsH               work properly where the target file already exists. In the<               following example, target_file already exists:  +               ln -i source_file target_file   F               In such a case, the -i option should cause ln to displayH               a prompt to request permission before removing conflictingH               pathnames. Instead, the behavior of ln with -i is the same,               as ln invoked without options.  A               You must use the -f option if you want to remove an /               existing pathname before linking.d        I                      POSIX for OpenVMS Shell Interface and Utilities 3-11S t         3     POSIX for OpenVMS Shell Interface and Utilities 
     3.22 makea    
     3.22 maken  E           The .SHELLPERLINE pseudotarget is ignored. The make utility C           uses one shell per line by default. An alternative syntaxt(           is required for group recipes.  E           Signal handling is not as specified in IEEE Std 1003.2-1992r=           ISO/IEC DIS 9945-2. At present, make traps signals,.?           performs the cleanup operations, then exits directly,t,           rather than resending the signals.  
     3.23 morep  B           The more utility will not work when the TERM environment=           variable is either not defined or set to an unknownrE           terminal type. In such a case, set TERM to a valid terminalc(           type, for example, as follows:              psx> export TERM=vt100  C           Performance problems may arise when using more with VT100 B           terminals. To avoid these, it is recommended that the -c1           option be used with more if TERM=vt100.e              See also Section 3.33.       3.24 newgrpr  ?           In order to change effective or real user group usingC.           newgrp, the user must be privileged.       3.25 odr  B           On VAX systems, the od utility is only able to recognise?           floating-point values D-floating format; on Alpha AXP @           systems, only G-floating format values are recognised.       3.26 patch             See Section 3.1.       3.27 pse  B           When the ps command is executed on a SMP machine, it may@           cause all the POSIX processes to hang. The only way to3           recover from this situation is to reboot.   8     3-12 POSIX for OpenVMS Shell Interface and Utilities           I                           POSIX for OpenVMS Shell Interface and Utilities I                                                                  3.28 runc             3.28 run  F               If you obtain a process dump for an image generated withI               c89, the name of the image dump is not the same as the name 4               of the terminated executed image file.           3.29 sh   I               The following command substitution does not work correctly:e                 echo `echo '\$x'`s  :               POSIX for OpenVMS returns \$x instead of $x.  H               The .sh_history file is shared by all sh processes runningG               under the same account. This could cause problems if more D               then one POSIX for OpenVMS user uses the same account.H               When recalling a previously issued command, you may get an!               unexpected command.   E               Several of the built-in commands do not process the - -                option.   D               The exported functions are not supported by the shell,H               nor will this feature be supported by IEEE Std 1003.2-1992D               ISO/IEC DIS 9945-2 or POSIX for OpenVMS in the future.  F               For details of the shell in emacs, vi or gmacs mode, see               Section 2.2.           3.30 spell  G               If the -b option is used to check British spelling, spelleE               terminates with exit status 2, and prints the following                message:  J               spell: hash file "/usr/lib/bhash": no such file or directory  H               This is because the file /usr/lib/bhash is not distributedF               with POSIX for OpenVMS Version 2.0. However, a directoryF               containing user-defined British spellings may be createdH               using the -d and -i options. Privileged users may create aF               directory in /usr/lib so that the -b option may be used.    I                      POSIX for OpenVMS Shell Interface and Utilities 3-13f e  p      3     POSIX for OpenVMS Shell Interface and Utilities 
     3.31 stty-    
     3.31 sttya  @           The line i control mode operand is recognized, but not>           implemented. Executing stty with this operand has no           effect.t       3.32 tar  0           The XPG4 -u option is not implemented.       3.33 The terminfo Database  ?           Due to the way in which the terminfo database and theh@           curses interface traditionally interact, any POSIX forD           OpenVMS utility (such as vi, more and talk) that calls the@           endwin()  function automatically enables keypad_local.  <           As a consequence, any key definitions specified on>           the OpenVMS command line prior to entering the POSIX@           for OpenVMS environment and executing one of the aboveD           utilities, are lost. The DCL SHOW TERMINAL command reportsB           an application keypad, when a numeric keypad is actually           enabled.       3.34 vi   E           The -r and -x options, documented in the online Help and byhC           the man utility, are not implemented in POSIX for OpenVMS            Version 2.0.  B           The macro facility, @name, where name is a single-letterB           macro name, does not function if the macro contains line           editing commands.s  @           Under certain circumstances, vi displays the following           message:  '           Not enough memory for screenss  B           There are two conditions under which this message may be           generated:  @           o  unavailability of dynamic memory, in which case the              message is correcto  8     3-14 POSIX for OpenVMS Shell Interface and Utilities a  l      I                           POSIX for OpenVMS Shell Interface and Utilities I                                                                   3.34 vin    B               o  an unknown terminal type setting at the moment viB                  is started. This can be detected, for example, byF                  inspecting the environment variable TERM. If TERM has2                  the value UNK, vi cannot execute.  @               The vi editor will not execute under the following               circumstances:  D               o  when the environment variable LINES is greater thanC                  or equal to 67. This does not happen when the TERM 6                  environment variable is set to vt100.  B               o  when either of the environment variables LINES or(                  COLUMNS is set to zero.  B               See also Section 3.1, Section 3.29 and Section 3.33.           3.35 emacs  H               The [<escape>count]Ctrl/C construct will work only without(               the <escape>count element.  G               The <escape>letter command inserts the value of the aliasdF               named _letter, not letter, as described in the standard.  C               The Ctrl/U command functions as described in the IEEE F               Std 1003.2-1992 ISO/IEC DIS 9945-2 standard, that is, itI               multiplies the count of the next command by four. Note thatu>               Ctrl/U used as a prefix to Ctrl/C does not work.  F               The Ctrl/O current command line processor does not work.  E               If the shell line editing mode is set to emacs, and you E               type ^T at the POSIX for OpenVMS prompt when no command D               has been entered, ^@ is output and additional input isH               required. You are prompted with an angle bracket characterA               (>) after a line feed. If at this point you enter adF               carriage return, the shell displays an error message and,               prompt for a new command line.                 psx> set -o emacse               psx> ^T                psx> ^@e               > CR               : not foundm               psx>  <               At this point you can enter any shell command.  I                      POSIX for OpenVMS Shell Interface and Utilities 3-15e a         3     POSIX for OpenVMS Shell Interface and Utilitiesn     3.35 emacs                See also Section 3.29.                                                                                        8     3-16 POSIX for OpenVMS Shell Interface and Utilities