File Control Description (FCD)

The fields contained in the FCD are shown in the following table. The fields do not necessarily appear in this order; the order is defined in the copybook or xfhfcd3.cpy. For flags, the description refers to when the bit is set on. Bit 7 is the most significant (leftmost) bit. Unused bits are reserved for future use.

Refer to the Operation Codes section to display details of how each operation uses these fields.
fcd-file-status (fcd-status-key-1, fcd-status-key-2)
Type: pic x
User file status. After every operation except a COMMIT or ROLLBACK operation, this field is updated with a standard file status value telling you the status of the operation. See also fcd-access-mode and fcd-status-type.
fcd-length
Type: pic xx comp-x
Windows: Reserved. Must be set to binary zeros.
UNIX: Length of FCD. For FCD3 only.
fcd-version
Type: pic x comp-x
Version number. Values can be:
0 FCD2
1 FCD3
fcd-organization
Type: pic x comp-x
File organization. Values can be:
0 Line sequential
1 Sequential
2 Indexed
3 Relative
fcd-access-mode
Type: pic x comp-x
User status and access mode indicators.

User status is indicated by bit 7. The bit is set if you have defined a file status. Defining a file status can affect how some operations (such as RETRYLOCK) are performed. When calling the File Handler directly, this bit should be set. However, file status is obtained directly from fcd-file-status.

Access mode is indicated by bits 6 through 0:

0 Sequential access mode
4 Random access mode
8 Dynamic access mod
fcd-open-mode
Type: pic x comp-x
Open mode:
0 INPUT
1 OUTPUT
2 I/O
3 EXTEND
128 File is closed

You must set this field to 128 before opening a file.

fcd-recording-mode
Type: pic x comp-x
Recording mode:
0 Fixed
1 Variable
fcd-file-format
Type: pic x comp-x
File format:
0 Default format
1 C-ISAM
2 Level II V2.5 COBOL
3 IDXFORMAT"3"
4 IDXFORMAT"4"
5 btrieve-ansi (applies to Windows environments only)
6 btrieve-non-ansi (applies to Windows environments only)
8 IDXFORMAT"8"
11 Mainframe print file
12 IDXFORMAT"12"
14 Heap file
15 ESDS
fcd-device-flag
Type: pic x comp-x
Device flag:
0 Normal
1 Device
2 Stdin
3 Stdout
4 stderr
5 Badname
6 Input pipe
7 Output pipe
8 I/O pipe
9 Library
10 Disk file
11 Null
12 Disk redir
13 No map
fcd-lock-action
Type: pic x comp-x
Reserved.
fcd-data-compress
pic x comp-x
Data compression routine indicator:
0 No compression
1-127 Micro Focus data compression routine number (1= CBLDC001)
128 -255 User-defined data compression routine number (128=USRDC128)
fcd-blocking
Type: pic x comp-x
Node length in bytes:
0 Node length determined by system
1 512
2 1024
4 4096
6 16384
fcd-idxcache-size
Type: pic x comp-x
Number of index nodes held in cached memory. The number specified should be between 4 and 255. When set to 0, a default of 16 is used.
fcd-percent
Type: pic x comp-x
Percentage indicator
fcd-block size
Type: pic x comp-x
Block size for data records in bytes:
0 No blocking
12 4096
13 8192
14 16384
15 32768
16 65536

For indexed and relative files, non-zero settings can degrade performance.

fcd-flags-1
Type: pic x comp-x
Bit 7 Mainframe compatibility bit. When set, file characteristics are not required to match those specified in program.
Bit 5 READ and START operations will return the key (only) in the record area
Bit 1 TRACE=ON
Bit 0 Reserved
fcd-flags-2
pic x comp-x
Bit 0 sets CONVERTDBSPACE=ON
fcd-mvs-flags
pic x comp-x
Mainframe emulation flags
Bit 2 File is implicit file (ACCEPT or DISPLAY)
Bit 1 AMODE(31) is on
Bit 0 AMODE(24) is on
fcd-status-type
pic x comp-x
Status type:
Bit 7 Set on for ANSI'85 COBOL file status by default, set off for ANSI'74 COBOL file status
Bit 6 SPACEFILL=OFF
Bit 5 STRIPSPACE=OFF
Bit 4 EXPANDTAB=OFF
Bit 3 LSRECDELIM=0D0A (applies to UNIX environments only)
Bit 2 INSERTTAB=ON
Bit 1 INSERTNULL=ON
Bit 0 Reserved

Bits 1 and 2 are set or unset by the File Handler at open time, depending on the settings of the N and T RTS switches. These bits can be set or unset after an OPEN operation to override the N and T RTS switches. Bit 3 means 'Use the other sort of line sequential record delimiter'.

fcd-other-flags
Type: pic x comp-x
Bit 7 OPTIONAL file (OPEN INPUT)
Bit 6 IGNORELOCK=ON
Bit 5 Not OPTIONAL (OPEN I/O and EXTEND)
Bit 4 Filename is EXTERNAL
Bit 3 Reserved
Bit 2 NODETECTLOCK directive enabled
Bit 1 Multiple reel file (record sequential)
Bit 0 Line advancing file (record sequential)
fcd-trans-log
Type: pic x comp-x
Bit 7 OPENINPUTSHARED=ON
Bit 5 READSEMA=OFF
Bit 4 EXPANDPOSITIONING=ON
Bit 1 FASTREAD=OFF
Bit 0 SUPPRESSADV=ON
fcd-lock-types
Type: pic x comp-x
Bit 7 Interlanguage locking (LOCKTYPE 1 or 2)
Bit 6 SHARING WITH READ ONLY
Bit 5 Separate lock file (LOCKTYPE 2)
Bit 4 RUNITLOCKDETECT=OFF
Bit 3 Use NFS file locking
Bit 2 Use NFS file locking with HP compatibility
fcd-fs-flags
Type: pic x comp-x
Fileshare flags:
Bit 7 Transaction logging
Bit 3 Trace OPEN and CLOSE operations
fcd-config-flags
Type: pic x comp-x
Bit 7 WRITETHRU
Bit 6 Use relative byte address
Bit 5 Update current record pointer
Bit 4 For FCD2 use fcd-reladdr-big for relative byte address instead of fcd-reladdr-offset
Bit 1 Call status conversion routine
Bit 0 Set if IGNORELOCK required
fcd-misc-flags
Type: pic x comp-x
Miscellaneous flags:
Bit 7 HOSTFD option (record areas allocated at OPEN time)
Bit 1 File defined with EXTERNAL syntax
Bit 0 File closed with lock
fcd-config-flags2
Type: pic x comp-x
Bit 7 Use EBCDIC collating sequence
Bit 6 Set if file is to have WRITE AFTER ADVANCING
Bit 5 Set if file is to have WRITE BEFORE ADVANCING
Bit 4 ADV specified
Bit 3 Ignore minimum length checking on variable-length files
fcd-lock-mode
Type: pic x comp-x
Lock mode flags for shareable files:
Bit 7 Lock on multiple records
Bit 6 WRITELOCK directive enabled
Bit 5 RETRYOPEN=ON
Bit 4 SKIPLOCK =ON
Bit 3 RETRYLOCK=ON
Bit 2 Lock mode MANUAL
Bit 1 Lock mode AUTOMATIC
Bit 0 Lock mode EXCLUSIVE
fcd-shr2
Type: pic x comp-x
Miscellaneous flags:
Bit 1 RETRYTIME=ON
Bit 0 STARTUNLOCK=ON
fcd-nls-id
Type: pic xx comp-x
NLS identifier
fcd-fs-file-id
Type: pic xx comp-x
Reserved
fcd-retry-open-count
Type: pic xx comp-x
RETRYOPEN count field
fcd-name-length
Type: pic xx comp-x
Length of filename
fcd-idxname-length
Type: pic xx comp-x
Reserved
fcd-retry-count
Type: pic xx comp-x
Retry count (used when RETRYLOCK is on)
fcd-key-id
Type: pic xx comp-x
Key-of-reference (indexed files), used for random READ operations. To specify the prime key, set this field to zero. For example, to specify the first alternate key defined, use a value 1; the second alternate key defined use value 2.
fcd-line-count
Type: pic xx comp-x
Line count (sequential files): the number of lines to skip when writing a file. For example:

WRITE AFTER ADVANCING line-count LINES

fcd-use-give
Type: pic xx comp-x
Reserved
fcd-key-length
Type: pic xx comp-x
Effective key length. When using a START operation on indexed files, you can specify only the leading part of a key instead of the whole key. You should set this field to the number of bytes to be used in the comparison. It must be greater than zero, and no bigger than the key being used.
fcd-current-rec-len
Type: pic x(2) comp-x for FCD2; pic x(4) comp-x for FCD3
Current record length (in bytes)
fcd-min-rec-length
Type: pic x(4) comp-x
Minimum record length (in bytes)
fcd-max-rec-length
Type: pic x(4) comp-x
Maximum record length (in bytes)
fcd-session-id
Type: pic x(4) comp-x
Process-id of the locking process on UNIX systems when using FCD3. This is only available for non-transactional files, and does not apply when using Fileshare. On Windows platforms, this is reserved.
fcd-reladdr-offset
Type: pic x(4) comp-x for FCD2; pic x(8) comp-x for FCD3
Relative byte address. (See also fcd-config-flags, bit 4). The value of this field is undefined following the OPEN statement.
fcd-reladdr-big
Type: pic x(8) comp-x
An eight-byte relative byte address. For FCD2, this is a separate field. For FCD3, it redefines fcd-reladdr-offset. Provided for compatibility between FCD2 and FCD3.
fcd-max-rel-key
Type: pic x(8) comp-x
Maximum size of relative key
fcd-relative-key
Type: pic x(8) comp-x
Relative key.

This field is also used, for indexed files, to hold the number of records in the file. It is set following an OPEN.

fcd-handle
Type: pointer
File handle
fcd-record-address
Type: pointer
Pointer to the record area
fcd-filename-address
Type: pointer
Pointer to the filename area
fcd-idxname-address
Type: pointer
Reserved
fcd-key-def-address
Type: pointer
Pointer to key definition block
fcd-col-seq-address
Type: pointer
Pointer to a collating sequence (null if none is used)
fcd-fildef-address
Type: pointer
Reserved
fcd-dfsort-address
Type: pointer
Reserved