The 1003.1 standard actually defines a C interface to POSIX. This is the obvious thing to do since POSIX is derived from the C run time library. However, that is not much comfort if you actually want to call the POSIX routines from FORTRAN. There is a draft standard (1003.9) that defines how the routines should be called from FORTRAN (referred to as the FORTRAN binding), but that is still a draft and commercial products based on that standard are unlikely to be available for some while. Furthermore, in order to cope with the C concepts that are inherent in POSIX, the draft standard for the FORTRAN binding has defined things in such a way that it makes using POSIX directly from FORTRAN somewhat painful.
To make life easier for the FORTRAN programmer, a package of routines
called PSX has been written to which let FORTRAN programs make calls to
POSIX functions in a manner consistent with other Starlink subroutine
libraries. This means that FORTRAN programs that need to make use of
functions provided by the operating system can be written in a portable
manner. Another advantage of using the PSX routines instead of using
raw POSIX (even if we could) is that it allows us to use inherited
status that is a common feature of Starlink subroutine libraries. If a
PSX routine detects an error, it sets the STATUS argument of the
routine to one of the values given in appendix and
reports an error via EMS (see SSN/4).
Note that the names of the PSX routines are often longer than the Starlink recommendation (SGP/16) of the PSX_ prefix plus five more characters. This has been done so that the name of the PSX routine corresponds directly with the name of the `real' POSIX routine. This creates a potential problem with porting the routines to other computers that might not accept names longer than six characters. However, the draft standard for the FORTRAN binding to POSIX assumes that compilers will accept names up to 31 characters (this is the only, extension to ANSI standard FORTRAN 77 that it assumes), so this is no worse than basing routines directly on the specification of the draft standard.
The PSX routines are just wrap around routines for POSIX routines. For further details on these routines, you should consult the relevant standards documents [1] and [2]. If you do not have copies of these, the documentation for the C run time library on your computer may be helpful.
PSX POSIX interface routines