Header files

Header files access header information using normal D3 utilities.

Through the OSFI, it is possible to access information about an item such as update stamps, permissions, ownership, and driver-specific data. The header driver translates this information into a format that looks like a standard D3 item.

Note: Access to the header information via this driver is read-only. The only way to modify the header information is through the normal update routines. This is enabled via the Y correlative for D3 files. With the Y correlative, the user, PIB, and/or timedate can be stamped by appending a u, p, and/or t to the y character. No other information is currently available for normal items. Header information updates on non-D3 items depend on the behavior of the remote file system to which those items belong.

Any utility that physically moves the data (such as copy) changes the header information.

The save and restore utilities save and restore the header information as well.

Raw attribute definitions

When reading items via the header driver, the items are returned as a dynamic array with the following raw attribute definitions:

Note: Attributes 11-14 apply only for UNIX.
Attribute Description md Entry
1 User-ID D3 user name or the UNIX user number in hexadecimal of the last user to update this item. hdr.user
2 PIB D3 PIB (in hexadecimal) of the last user to update this item. This field is undefined for non-D3 drivers. hdr.pib
3 Time/date Hexadecimal representation of the number of seconds elapsed since 12:00 AM December 31, 1967 and the time the item was last updated. hdr.date and hdr.time
4 Permissions Hexadecimal number representing the permissions on the item. This currently only applies to non-D3 items. N/A
5 GroupID Group ID (in hexadecimal). Currently used only by the UNIX driver, but may be used by other drivers in the future. N/A
6 - 10 Reserved N/A
11 File type:
  • d directory

  • b block special file

  • c character special file

  • m multiplexor file

  • l symbolic link

  • p fifo

  • - regular file

  • ? unknown file type

hdr:unix:type
12 Size in decimal. hdr:unix:bytes
13 Mode in octal. hdr:unix:omode
14 Mode in text format (-rwxrwxrwx). hdr:unix:mode
15 User-ID in decimal. hdr:unix:uid
16 User-ID name. hdr:unix:user
17 Group ID in decimal. hdr:unix:gid
18 Group ID name. hdr:unix:group
19 Creation date in decimal. hdr:unix:cdate
20 Creation time in decimal. hdr:unix:ctime
21 Modification date in decimal. hdr:unix:mdate
22 Modification time in decimal. hdr:unix:mtime
23 Access date in decimal. hdr:unix:adate
24 Access time in decimal. hdr:unix:atime

Q-pointer format

The format of the header Q-pointer is:

file.name
  001 Q
  002  
  003 hdr:filename

where

hdr Name of the hdr host in the dm,hosts, file.
filename Name of the target file to examine. This can be a local D3 file (assuming the Y correlative has been added to the D-pointer), or a remote file (UNIX or MS-DOS).

The file can also be opened by pre-pending the file name with the string "hdr:".

Warning: Because the hdr: driver is read-only, it does not make sense to create a QS-pointer to it (to attempt to save the header data). Any attempt to do this will have no effect upon a restore. Note that it is not necessary to save header information since it is implicitly saved and restored using the save and restore utilities. Header information is not recorded on a t-dump since the succeeding t-load is considered to be a batch of new updates which change the header information in a driver-specific manner. Note that updates performed to a file from a remote site will always show the updated user as dm.