Environment Division for File Input and Output [ COBOL/HP-UX Language Reference for the Series 700 and 800 ] MPE/iX 5.0 Documentation
COBOL/HP-UX Language Reference for the Series 700 and 800
Environment Division for File Input and Output
For details of the Configuration Section see the chapter The Nucleus.
Input-Output Section
The FILE-CONTROL Paragraph.
Function
The FILE-CONTROL paragraph names each file and allows specification of
other file-related information.
General Format
The FILE-CONTROL Entry.
Function
The FILE-CONTROL entry names a file and can specify other file-related
information.
________________________________________________________________________
|(XOPEN) |
|Although they are a part of the standard COBOL definition, the RECORD |
|DELIMITER and RESERVE phrases and ellipses in the ASSIGN clause are |
|explicitly excluded from the X/Open COBOL language definitions and |
|should not be used in X/Open COBOL source programs. |
________________________________________________________________________
General Formats
Format 1 (Record Sequential Files)
Format 3 (Relative Files)
Format 4 (Indexed Files)
Format 5 (Sort-Merge Files)
Syntax Rules
All Formats (All Files)
1. The SELECT clause must be specified first in the file control
entry. The clauses which follow the SELECT clause can appear in
any order.
2. Each file described in the Data Division must be named once, and
only once, as file-name in the FILE-CONTROL paragraph. Each file
specified in the file control entry must have a file description
entry in the Data Division.
3. If the ACCESS MODE clause is not specified, the ACCESS MODE IS
SEQUENTIAL clause is implied.
________________________________________________________________________
|(MF) |
| |
| |
| |
|4. Data-name-1 can be declared in the Data Division as an |
| alpha-numeric or group data item long enough to hold the external|
| name of the file. If it is not explicitly declared within the |
| program, your COBOL system will declare it implicitly as an |
| alphanumeric data item long enough to hold the maximum |
| permissible size of program name. If data-name-1 occurs in the |
| FROM option, the data item must be explicitly declared in the |
| Data Division. |
| |
|5. The NOT OPTIONAL phrase has effect only when the file is opened |
| input-output. |
| |
|6. External-file-reference, data-name-1, or literal-1 specifies the |
| external name of the file. |
| |
| If the EXTERNAL or DYNAMIC option is used, literal-1 must not be |
| specified. |
| |
| If the DYNAMIC option is used, the word specified |
| for the external file name will be interpreted as |
| external-file-reference. |
| |
| If literal-1 is not specified, but neither the EXTERNAL nor the |
| DYNAMIC option is used, then either EXTERNAL or DYNAMIC is |
| assumed depending on the setting of the ASSIGN system directive |
| (see your COBOL System Reference). |
| |
________________________________________________________________________
7. Data-name-2 must be defined in the Data Division as a two-character,
alphanumeric data item or a two-character numeric data item with
USAGE DISPLAY (OSVS) (VSC2) and must not be defined in the File,
LOCAL-STORAGE (MF) or the Communication Sections of the Data
Division.
________________________________________________________________________
|(VSC2) |
| |
| |
| |
|8. Data-name-3 must be defined as a group item of 6 bytes in the |
| Working-Storage or Linkage Section of the Data Division. |
| |
________________________________________________________________________
________________________________________________________________________
|(OSVS) (VSC2) |
| |
| |
| |
|9. Data-name-4 must be defined in the Working-Storage Section as an |
| alphanumeric data item. |
| |
________________________________________________________________________
10. All data names can be qualified.
Format 1 (Record Sequential Files only)
________________________________________________________________________
|(ANS85) |
| |
| |
| |
|11. Literal-2 must be a one-character nonnumeric literal. |
| |
|12. Data-name-5 can be qualified. It must be defined in the Data |
| Division as a one-character data item of category alphanumeric. |
| It cannot be defined in the Communication, File or Report |
| Sections of the Data Division. |
| |
|13. Character-string must not be a reserved word, a user-name or a |
| literal. |
| |
________________________________________________________________________
Formats 1 and 2 (Record and Line Sequential Files)
14. When the ORGANIZATION clause is not specified, sequential
organization is assumed. (See Syntax Rule 19 below.)
________________________________________________________________________
|(MF) |
| |
| |
| |
|15. KEYBOARD means console input. |
| |
|16. DISPLAY means console output. |
| |
|17. PRINTER specifies the system's main printer. |
| |
|18. PRINTER-1 specifies the system's second printer. |
| |
|19. If both RECORD and LINE are omitted from the ORGANIZATION phrase,|
| one or the other of these options is assumed according to the |
| setting of the COBOL system directive SEQUENTIAL (see your COBOL |
| System Reference). |
| |
________________________________________________________________________
Format 3 (Relative Files)
20. If a relative file is to be referenced by a START statement, the
RELATIVE KEY phrase must be specified for that file.
21. Data-name-5 must not be defined in a record description entry
associated with that file-name.
22. The data item referenced by data-name-5 must be defined as an
unsigned integer.
Format 4 (Indexed Files)
________________________________________________________________________
|(MF) |
| |
| |
| |
|23. Split-key-name is a concatenation of one or more data items |
| within a record associated with that file-name. It can be |
| referenced only in START and READ statements. |
| |
________________________________________________________________________
24. The data items referenced by data-name-5 and data-name-8 and any
data-names referenced by split-key-name-1 and split-key-name-2 (MF)
must be defined as alphanumeric data items within a record
description entry associated with the file-name.
________________________________________________________________________
|(OSVS) (VSC2) (MF) |
|Any of these data items can be defined as any supported data category.|
|However, the key is still treated as an alphanumeric item for the |
|input and output statements against the file named in the SELECT |
|clause. |
________________________________________________________________________
25. Data-name-5 and data-name-8 and any data-names referenced by
split-key-name-1 and split-key-name-2 (MF) cannot describe an item
whose size is variable. (See "The OCCURS Clause" in the chapter
The Nucleus.)
26. Data-name-8 or split-key-name-2 (MF) cannot reference an item whose
leftmost character position corresponds to the leftmost character
position of an item referenced by data-name-5 or split-key-name-1.
(MF)
________________________________________________________________________
|(OSVS) (VSC2) |
| |
| |
| |
|27. If the PASSWORD clause is specified, it must immediately |
| follow its associated RECORD KEY or ALTERNATE RECORD KEY |
| clause. |
| |
________________________________________________________________________
Format 5 (Sort-Merge Files)
28. Each sort or merge file described in the Data Division must be named
once and once only as file-name in the FILE-CONTROL paragraph. Each
sort or merge file specified in the file control entry must have a
sort-merge file description entry in the Data Division.
29. Since file-name represents a sort or merge file, only the ASSIGN
clause is permitted to follow file-name in the FILE-CONTROL
paragraph.
General Rules
All Formats (All Files)
1. The ASSIGN clause specifies the association of the file referenced
by file-name-1 to a storage medium. (See your COBOL System
Reference.) The first assignment takes effect:
________________________________________________________________________
|(OSVS) (VSC2) (MF) |
|subsequent assignments within any one ASSIGN clause are documentary |
|only. |
________________________________________________________________________
2. The RESERVE clause allows the user to specify the required number
of input-output areas.
________________________________________________________________________
|(MF) |
|The RESERVE clause is documentary only, unless the COBOL System |
|Reference specific to your operating system indicates otherwise. |
________________________________________________________________________
3. The ORGANIZATION clause specifies the logical structure of a file.
The file organization is established at the time a file is created
and cannot subsequently be changed.
4. When the FILE STATUS clause is specified, a value will be moved by
the Run-Time System into the data item specified by data-name-2
after the execution of every statement that references that file
either explicitly or implicitly. This value indicates the status
of execution of the statement. (See the section I/O Status
earlier in this chapter.)
________________________________________________________________________
|(MF) |
|Data-name-3, if specified, is documentary only. |
________________________________________________________________________
________________________________________________________________________
|(MF) |
| |
| |
| |
|5. The PASSWORD clause is documentary only. |
| |
|6. The use of the reserved word DYNAMIC in an ASSIGN clause |
| indicates that the value of literal-1 or data-name-1 in that |
| ASSIGN clause is the specified file's name in the external |
| file-storage environment. |
| |
|7. The use of the reserved word EXTERNAL in an ASSIGN clause |
| indicates that external-file-reference identifies the specified |
| file to the external environment for possible further mapping to |
| an external file-storage environment name. (See your COBOL |
| System Reference for details on setting up external-file-name for|
| your particular operating environment.) |
| |
| If external-file-reference contains the character "-", then only |
| that part of the name following the last "-" is used to identify |
| the file to the external environment. |
| |
|8. The DISK option without external-file-reference, data-name-1 or |
| literal-1 and without the FROM option, specifies a disk file |
| whose name will be given in a VALUE OF FILE-ID clause in the file|
| description for the file. If that file description contains |
| no VALUE OF FILE-ID clause, the name of the disk file is |
| assumed to be the same as file-name-1 (known as the internal |
| file-name). |
| |
|9. If any of the keywords DISK, KEYBOARD, DISPLAY, PRINTER or |
| PRINTER-1 are followed by external-file- reference, data-name-1 |
| or literal-1, that keyword is ignored. |
| |
|10. The DISK option with the FROM option specifies a disk file whose |
| name on the disk is the value of data-name-1. However, if when |
| an OPEN statement is executed for that file, data-name-1 contains|
| all spaces, the name of the disk file is assumed to be the same |
| as file-name-1 (known as the internal-file-name). |
| |
________________________________________________________________________
11. The OPTIONAL phrase applies only to files opened in the INPUT, I/O
or EXTEND mode. Its specification is required for files that are
not necessarily present each time the object program is executed.
________________________________________________________________________
|(MF) |
| |
|Formats 1, 3 and 4 (Record Sequential, Relative and Indexed |
|files) |
| |
| |
| |
|12. The LOCK MODE clause is an optional clause in the file control |
| entry and is used to specify the locking technique used for the |
| file. |
| |
| If this clause is omitted, opening the file causes it to become |
| exclusive, with the exception of OPEN INPUT. |
| |
| When LOCK MODE IS EXCLUSIVE is specified, the run unit acquires a|
| lock on the whole file when it opens the file. |
| |
| When LOCK MODE IS AUTOMATIC or LOCK MODE IS MANUAL is specified, |
| the file that the run unit opens is shareable. Files opened |
| OUTPUT, and indexed and relative files opened EXTEND are, |
| however, always exclusive. |
| |
|13. The ROLLBACK clause requests transaction logging for a file under|
| those COBOL systems that support that feature. In other COBOL |
| systems, this clause is documentary only. See your COBOL System |
| Reference for details of how it is implemented in your |
| system. |
| |
| If the ROLLBACK clause is specified then WITH LOCK ON MULTIPLE |
| RECORDS will automatically be in effect. |
| |
|14. The WITH LOCK ON RECORD clause specifies single record locking |
| for the file. |
| |
| The WITH LOCK ON MULTIPLE RECORDS clause specifies multiple |
| record locking for the file. This clause must be present if |
| multiple record locking is required. |
| |
|15. If LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD is specified for a |
| file, a record lock is acquired by the execution of the READ |
| statement and is released upon execution of a subsequent |
| I/O operation on this file, with the exception of a START |
| statement. |
| |
| If LOCK MODE IS AUTOMATIC WITH LOCK ON MULTIPLE RECORD is |
| specified for a file, a record lock is acquired by the execution |
| of the READ statement and is not released until a CLOSE, COMMIT, |
| ROLLBACK or UNLOCK statement is executed. |
| |
|16. If LOCK MODE IS MANUAL WITH LOCK ON RECORD is specified, a lock |
| is acquired by a READ statement only if it includes the WITH LOCK|
| phrase, and is released upon execution of a subsequent |
| I/O operation on this file, with the exception of a START |
| statement. |
| |
| If LOCK MODE IS MANUAL WITH LOCK ON MULTIPLE RECORDS is |
| specified, a record lock is acquired by the READ WITH KEPT LOCK |
| statement and is not released until a CLOSE, COMMIT, ROLLBACK or |
| UNLOCK statement is executed. |
| |
________________________________________________________________________
________________________________________________________________________
|(MF) |
| |
| |
| |
|17. When the lock mode is MANUAL or AUTOMATIC, single record locking |
| is assumed unless the WITH LOCK ON MULTIPLE RECORDS phrase is |
| included. |
| |
|18. If a file is defined as EXTERNAL and the operating system |
| file-name is assigned by means of a file name, for example, by |
| use of either the DYNAMIC directive or keyword, using data-name-1|
| in the SELECT/ ASSIGN statement, or using Format 2 of the VALUE |
| OF phrase of an FD, then the following rules should be |
| followed: |
| |
| |
| a. identifier with the same name should be used to contain |
| the physical file name in all programs which reference the|
| file. |
| |
| b. definition of the identifier which contains the |
| physical file name should also contain the EXTERNAL |
| attribute. |
| |
| No violation of these rules will be detected at compile time, |
| but, if any program in the run-unit violates these rules, the |
| results at run-time will be undefined. |
| |
| For further details of the effects of record locking, see your |
| COBOL System Reference. |
| |
________________________________________________________________________
Format 1 (Record Sequential Files)
19. The MULTIPLE REEL or MULTIPLE UNIT phrase must be specified if it is
possible or intended that the file can be closed by use of the CLOSE
REEL or CLOSE UNIT statement.
20. Records in the file are accessed in the sequence specified by
predecessor-successor record relationships which are established by
the execution of WRITE statements when the file is created or
extended.
________________________________________________________________________
|(MF) |
| |
| |
| |
|21. Using the LINE ADVANCING FILE phrase causes a file suitable for a|
| printer to be produced. This file will have an initial |
| carriage-return character, and each record is written with AFTER |
| ADVANCING 1 LINE as the default advancing phrase. See |
| your COBOL System Reference for further details of the |
| format. |
| |
________________________________________________________________________
________________________________________________________________________
|(ANS85) |
| |
| |
| |
|22. The PADDING CHARACTER clause is documentary only. (MF) If the |
| associated file connector is an external file connector, all |
| PADDING CHARACTER clauses in a run unit which are associated with|
| that file connector must have the same specification. If |
| data-name-5 is external, it must reference an external data |
| item. |
| |
|23. The RECORD DELIMITER clause (MF) is documentary only. |
| |
________________________________________________________________________
Format 2 (Line Sequential Files)
________________________________________________________________________
|(MF) |
| |
| |
| |
|24. When LINE SEQUENTIAL ORGANIZATION is specified either implicitly |
| or explicitly, the file is treated as consisting of fixed length |
| records, each containing one line of data. The records are |
| stored with trailing spaces removed. The definition of a line of|
| data varies among different operating systems. Some terminate |
| line "records" with one or both of the Carriage Return and Line |
| Feed characters, and some pad out as fixed length records. Your |
| COBOL system, therefore, always produces files which are |
| compatible in this respect with the editor software in any |
| operating system. |
| |
|25. The LOCK MODE IS clause is documentary only. |
| |
________________________________________________________________________
Format 3 (Relative Files)
26. When access mode is sequential, records in the file are accessed in
order of ascending relative record numbers of existing records in
the file.
27. When access mode is random, the value of the RELATIVE KEY data item
indicates the record to be accessed.
28. All records stored in a relative file are uniquely identified by
relative record numbers, which also specify the record's logical
ordinal position in the file. The first logical record has a
relative record number of 1, and subsequent logical records have
relative record numbers of 2, 3, 4, ... .
29. The data item specified by data-name-5 is used to communicate a
relative record number between the user and the operating system.
Format 4 (Indexed Files)
30. When access mode is sequential, records in the file are accessed in
order of ascending record key values within a given key of
reference.
31. When access mode is random, the value of the record key data item
indicates the record to be accessed.
32. The RECORD KEY clause specifies the record key that is the prime
record key for the file. The values of the prime record key must be
unique among records of the file. This prime record key provides an
access path to records in an indexed file.
33. The ALTERNATE RECORD KEY clause specifies a record key that is an
alternative record key for the file. This alternate record key
provides an alternative access path to records in an indexed file.
34. The data description of data-name-5 or split-key-name-1 (MF) and
data-name-8 or split-key-name-2, (MF) as well as of relative
locations within a record, must be the same as that used when the
file was created. The number of alternate keys for the file must
also be the same as that used when the file was created. This
checking is configurable (see your COBOL System Reference for
details).
35. The DUPLICATES phrase specifies that the value of the associated
record key can be duplicated within any of the records in the file.
If the DUPLICATES phrase is not specified, the value of the
associated record key must not be duplicated among any of the
records in the file.
36. For duplicate values the correct duplicate entry must be located
using sequential reads from the first duplicate entry.
37. The file-control entry names a sort or merge file and specifies the
association of the file to a storage medium.
Format 5 (Sort-Merge Files)
38. When the SORT STATUS clause is specified, a value is placed into the
two-character data item specified by data-name-2 after the execution
of each sort operation. This value indicates the status at
completion of the operation.
The resulting status of the sort operation is indicated by valid
combinations of status keys 1 and 2. For explanations of status
keys 1 and 2 and definitions of status, see the section I/O Status
earlier in this chapter.
The following combinations of status keys are possible. Status key
1=0 and status key 2=0 indicates successful completion. Status key
1=3 and status key 2=0 indicates a permanent error. If status key
1=9, status key 2 contains an operating system error message number.
The FILE STATUS clause can be used instead of a SORT STATUS clause,
but is treated as a synonym for it, when specified for a SORT or
merge file.
The I/O-CONTROL Paragraph.
Function
The I/O-CONTROL paragraph specifies the points at which rerun is to be
established, the memory area which is to be shared by different files,
and for files with sequential organization the location of files on a
multiple file reel.
________________________________________________________________________
|(ANS85) |
|The RERUN and MULTIPLE FILE TAPE clauses of the I/O-CONTROL paragraph |
|are classed as obsolete elements in the ANSI'85 standard and are |
|scheduled to be deleted from the next full revision of the ANSI |
|Standard. |
________________________________________________________________________
________________________________________________________________________
|(MF) |
|All dialects within this COBOL implementation fully support this |
|syntax. Refer to your COBOL System Reference for details on |
|using the FLAGSTD directive to detect all occurrences of this |
|syntax. |
________________________________________________________________________
________________________________________________________________________
|(XOPEN) |
|Although they are a part of the standard COBOL definition, the RERUN |
|and MULTPIPLE FILE TAPE clauses are explicitly excluded from the |
|X/Open COBOL language definitions and should not be used in X/Open |
|COBOL source programs. |
________________________________________________________________________
General Formats
Format 1 (Sequential Files)
Format 2 (Relative and Indexed Files)
Format 3 (Sort-Merge Files)
Syntax Rules
All Formats (All Files)
1. The I/O-CONTROL paragraph is optional.
2. File-name-1 must be a sequentially organized file.
3. When either the integer-1 RECORDS clause or the integer-2
CLOCK-UNITS clause is specified, character-string must be given in
the RERUN clause.
4. The two forms of the SAME clause (SAME AREA, SAME RECORD AREA) are
considered separately in the following:
More than one SAME clause can be included in a program. However:
a. A file-name must not appear in more than one SAME AREA
clause.
b. A file-name must not appear in more than one SAME RECORD
AREA clause.
c. If one or more file-names of a SAME AREA clause appear in a
SAME RECORD AREA clause, all of the file-names in that SAME
AREA clause must appear in the SAME RECORD AREA clause.
However, additional file-names not appearing in that SAME
AREA clause can also appear in that SAME RECORD AREA
clause. The rule that only one of the files mentioned in a
SAME AREA clause can be open at any one time takes
precedence over the rule that all files mentioned in a SAME
RECORD AREA clause can be open at any one time.
5. The files referenced in the SAME AREA or SAME RECORD AREA clause
need not all have the same organization or access.
________________________________________________________________________
|(MF) |
| |
| |
| |
|6. Character-string must not be a reserved word, a literal or a |
| user-name. |
| |
________________________________________________________________________
Format 1 (Record Sequential Files)
7. The END OF REEL/UNIT clause can only be used if file-name-2 is a
sequentially organized file.
8. More than one RERUN clause can be specified for a given file-name-2,
subject to the following restrictions:
a. When multiple integer-1 RECORD clauses are specified, no two
of them can specify the same file-name-2.
b. When multiple END OF REEL or END OF UNIT clauses are
specified, no two of them can specify the same file-name-2.
Format 2 (Relative and Indexed Files)
9. When multiple integer-1 RECORDS clauses are specified, no two of
them can specify the same file-name-2.
10. Only one RERUN clause containing the CLOCK-UNITS clause can be
specified.
Format 3 (Sort-Merge Files)
11. In the SAME AREA clause, SORT and SORT-MERGE are equivalent.
12. If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file.
Files that do not represent sort or merge files can also be named in
the clause.
13. The three formats of the SAME clause (SAME RECORD AREA, SAME SORT
AREA, SAME SORT-MERGE AREA) are considered separately in the
following:
More than one SAME clause can be included in a program, however:
a. A file-name must not appear in more than one SAME RECORD AREA
clause.
b. A file-name that represents a sort or merge file must not
appear in more than one SAME SORT AREA or SAME SORT-MERGE
AREA clause.
c. If a file-name that does not represent a sort or merge file
appears in a SAME AREA clause and one or more SAME SORT AREA
or SAME SORT-MERGE AREA clauses, all of the files named in
that SAME AREA clause must be named in that SAME SORT AREA or
SAME SORT-MERGE AREA clause(s).
14. The files referenced in the SAME SORT AREA, SAME SORT-MERGE AREA, or
SAME RECORD AREA clause need not all have the same organization or
access.
General Rules
All Formats (All Files)
________________________________________________________________________
|(MF) |
| |
| |
| |
|1. The RERUN clause is documentary only. |
| |
________________________________________________________________________
2. The SAME AREA clause specifies that two or more files that do not
represent sort or merge files are to use the same memory area during
processing. The area being shared includes all storage area
assigned to the files specified. It is not, therefore, valid to
have more than one of the files open at the same time. (See Syntax
Rule 4c.)
3. The SAME RECORD AREA clause specifies that two or more files are to
use the same memory area for processing the current logical record.
All of the files can be open at the same time. A logical record in
the SAME RECORD AREA is considered as a logical record of each
opened output file whose file-name appears in this SAME RECORD AREA
clause and of the most recently read input file whose file-name
appears in this SAME RECORD AREA clause. This is equivalent to an
implicit redefinition of the area; that is, records are aligned on
the leftmost character position.
________________________________________________________________________
| |
| 4. The APPLY clause is documentary only. (MF) |
| |
________________________________________________________________________
Format 1 (Record Sequential Files)
________________________________________________________________________
| |
| 5. The MULTIPLE FILE clause is documentary only. (MF) |
| |
________________________________________________________________________
Format 3 (Sort-Merge Files)
6. The SAME RECORD AREA clause specifies that two or more files are to
use the same memory area for processing of the current logical
record. All of the files can be open at the same time. A logical
record in the SAME RECORD AREA is considered as a logical record of
each opened output file whose file-name appears in this SAME RECORD
AREA clause and of the most recently read input file whose file-name
appears in this SAME RECORD AREA clause. This is equivalent to
implicit redefinition of the area; that is, records are aligned on
the leftmost character position.
7. If the SAME SORT AREA or SAME SORT-MERGE AREA clause is used, at
least one of the file-names must represent a sort or merge file.
Files that do not represent sort or merge files can also be named in
the clause. This clause specifies that storage is shared as
follows:
a. The SAME SORT AREA or SAME SORT-MERGE AREA clause specifies a
memory area which will be made available for use in sorting
or merging each sort or merge file named. Thus any memory
area allocated for the sorting or merging of a sort or merge
file is available for reuse in sorting or merging any of the
other sort or merge files.
b. In addition, storage areas assigned to files that do not
represent sort or merge files can be allocated as needed for
sorting or merging the sort or merge files named in the SAME
SORT AREA or SAME SORT-MERGE AREA clause.
c. Files other than sort or merge files do not share the same
storage area with each other. If the user wishes these files
to share the same storage area with each other, he must also
include in the program a SAME AREA or SAME RECORD AREA clause
naming these files.
d. During the execution of a SORT or MERGE statement that refers
to a sort or merge file named in this clause, any
non-sort-merge files named in this clause must not be open.
MPE/iX 5.0 Documentation