The Question is:
I am writing a C program to manipulate files. I found the following 3 modules
missing from the C library, and had to extract them from LIB.MLB. Could these
please be added? Or please tell me where to look.
FH2DEF.H;2 7 19-NOV-2003 15:17:35.29
FI2DEF.H;2 2 19-NOV-2003 15:15:39.28
HM2DEF.H;2 6 19-NOV-2003 15:19:17.16
And I did not find offsets defined for the "allocated blocks" and "used blocks"
values in the ODS2 file header. Is this an oversight? or am I not looking in
the right area?
The Answer is :
You are manipulating files at an exceedingly low level, and one that
is comparatively unusual for applications.
These definition modules are and have traditionally been available in
SYS$LIB_C.TLB, please reference them from there -- that the definitions
are in LIB is an indication of the nature of the definitions.
You will also want to be aware of FI5DEF, and ODS-5 requirements.
If you can locate a copy, the VMS File System Internals book by McCoy
-- out of print -- will be of interest, as will the ODS documentation
available on the OpenVMS Freeware distributions.
Depending on what task(s) you seek to perform, there are packages on the
OpenVMS Freeware which allow access to low-level OpenVMS disk volume
structures on other platforms, and there are system service and $qio[w]
interfaces for most operations. If this is an OpenVMS application, the
OpenVMS Wizard would tend to use either the IO$_ACPCONTROL ($qio[w])
interface, or the RMS services interface, or a language interface --
this for both supportability and upgradability, among other reasons.