General device control
The value specified is passed to the appropriate device driver. A value
from the driver is returned in item. Not valid for spooled
device files.
Carriage control (CCTL)
Passes a carriage control directive to the driver of the specified
nonspooled device file, regardless of whether the file is opened CCTL or
NOCCTL. For spooled devices, use FWRITE to pass carriage control
directives. (Refer to the FWRITE intrinsic for these directives.)
If item passes either the prespacing (%101 or %401) or
postspacing (%100 or %400) carriage control directives, one of the
following values is returned in item, indicating the
setting of the device prior to the FCONTROL call
0
Postspacing
1
Prespacing
If both a mode control directive and a carriage control directive need to
be specified, an additional call to FWRITE or FCONTROL
must be made.
This itemnum is ignored for byte stream files. It is not
applicable to directories since applications are not permitted to write to
directory files.
Default: postspacing with automatic page eject (except for FORTRAN77/XL and
COBOLII/XL: prespacing with automatic page eject).
Complete I/O
Ensures that requested I/O has been physically completed. Valid only for
buffered files. Posts the block being written (full or not). Ignored for
message files.
Item is ignored.
This itemnum is supported for byte stream files. It is not
applicable to directories since applications are not permitted to write to
directory files.
(KSAM) A checkpoint record is written. In the event of a system crash,
recovery would be done to this state of the files.
Device status
Returns a record containing information about the state of the device
associated with the file immediately after the last I/O operation
(including HPFOPEN/FOPEN) on the file. The record size and
contents are device-dependent.
Set read timeout interval
Passes the timeout interval, in seconds, to be applied to the next read
from the specified file. The maximum value allowed is 65,535 seconds. If
input is requested from a file but is not received in this interval, the
FREAD request terminates with CCL (1). The interval is
specified in seconds and returned no value. If this interval is zero, any
previously established interval is cancelled, and no timeout occurs.
If a timeout value is being set for a read posted against a device
connected through a PAD, add enough time to compensate for time delays that
may be caused by the network.
A timeout value should be used for programs reading from an unattended
device to prevent "hangs". Timeouts can be used to terminate binary reads
(only as a safeguard to prevent a program from waiting forever for a read
to complete).
Only valid for terminal and message files. Only affects the next read if
the file is being read from the terminal; it must be reissued for each read.
If this code is applied to a message file, item specifies
the length of time that a process waits when reading from an empty file or
writing to a full one and the timeout remains enabled until it is
explicitly cancelled.
During block mode reads, the timer halts when a DC2 character is received.
At this time, the block mode read timer is activated by the system; its
values are not user changeable.
Reposition file at its beginning
The next record, read or written, is the first record in the file. Not
valid for files accessed as append-only. On a labeled magnetic tape file or
serial disk file, the tape is positioned at the beginning of the opened
file, and not necessarily at the beginning of the volume. Rejected for
spooled DATA tapes.
Item is ignored.
This itemnum is supported for byte stream files and all
types of directories.
(KSAM) The file is repositioned to the first logical record; the record
with the lowest value in the current key.
Write end-of-file
Marks the end-of-file (EOF) on disk or magnetic tape and is effective only
for those devices:
If used for a disk file it writes a logical end-of-data marker
where the file was last accessed. The disk file label is updated and
written to disk.
If used for a file residing on unlabeled magnetic tape, a tape
mark is written at that current position.
If used for message files, it verifies the state of the file by
writing the file label and buffer area to disk; ensures the message
file can survive system crashes. No EOF is written.
If used for KSAM files, it performs the function of
itemnum=2 and writes the file label. This guarantees
that the end-of-file is correct and the extent bit map is
updated.
Rejected for spooled DATA tapes and labeled magnetic tape files.
Item is ignored.
This itemnum is supported for byte stream files. It is not
applicable to directories since applications are not permitted to write to
directory files.
Space forward to tape mark
Moves a magnetic tape forward until a tape mark is encountered. If used on
labeled magnetic tapes, the tape is positioned at the beginning of user
trailer labels, if any. Rejected for spooled DATA tapes.
Item is ignored.
(KSAM) Not used for KSAM XL files. For KSAM/3000 files, it clears the key
and data buffers of all information and reads the first 2 sectors of the
key file from disk to buffer.
Space backward to tape mark
On unlabeled tapes, moves a magnetic tape backward until a tape mark is
encountered. If used on labeled tapes, the tape is positioned at the
beginning of user header labels, if any. Rejected for spooled DATA
tapes.
Item is ignored.
(KSAM) Not used for KSAM files.
Rewind and unload tape
Repositions a magnetic tape file at its beginning and places the tape
offline. Not allowed for labeled tapes. Rejected for spooled DATA
tapes and labeled magnetic tape files.
Item is ignored.
Change line speed of a device
Passes a value specifying a new line speed for both input and output.
The value passed must be expressed in characters per second (1 character
per second = 10-bits per second). The supported choices are
30
(300 bps)
120
(1200 bps)
240
(2400 bps)
960
(9600 bps)
1920
(19200 bps)
Any setting other than those listed returns CCL (1).
The speed associated with the device must match the physical speed settings
of the device/modem. If the speed setting is changed programmatically, a
request that the speed setting of the device be manually changed should be
made.
If issued against a terminal connected through PAD, CCE (2) is returned,
but there is no effect on the transmission speed, and a meaningless value
is returned in item.
When a device is initially opened programmatically, the speed is set to the
default device speed. If the device is opened as a logon device (configured
with speed and parity sensing enabled), the speed setting is sensed from
the first carriage return character received. The default device speed is
configured through the Node Management Configuration Manager (NMMGR) or the
OpenView DTC Manager (networks managed by an OpenView workstation).
Reconfigure the device to permanently change the speed.
Not reset in break mode; not reset after FCLOSE.
Item is ignored.
Change line speed of a device
Passes a value specifying a new line speed for both input and output.
The value passed must be expressed in characters per second (1 character
per second = 10-bits per second). The supported choices are:
30
(300 bps)
120
(1200 bps)
240
(2400 bps)
960
(9600 bps)
1920
(19200 bps)
Any setting other than those listed returns CCL (1).
The speed associated with the device must match the physical speed settings
of the device/modem. If the speed setting is changed programmatically, a
request that the speed setting of the device be manually changed should be
made.
If issued against a terminal connected through PAD, CCE (2) is returned,
but there is no effect on the transmission speed, and a meaningless value
is returned in item.
When a device is initially opened programmatically, the speed is set to the
default device speed. If the device is opened as a logon device (configured
with speed and parity sensing enabled), the speed setting is sensed from
the first carriage return character received. The default device speed is
configured through the Node Management Configuration Manager (NMMGR) or the
OpenView DTC Manager (networks managed by an OpenView workstation).
Reconfigure the device to permanently change the speed.
Not reset in break mode; not reset after FCLOSE.
Item is ignored.
Enable echo facility
Returns a value indicating the previous echo status:
0
Echo ON
1
Echo OFF
When enabled, all characters transmitted to the DTC are echoed onto the
terminal's screen (DTC echo). When the system is initialized, all
characters are echoed except for XON, XOFF, NULL, DEL, and DC2. During
binary reads, all characters are passed as data and echoed. For this reason,
echo should be disabled while in binary mode.
During block mode processing, echo should be disabled and local echo should
be used to cause the terminal to write data back to the screen. If VPLUS is
being used for block mode applications, this is done automatically. For all
other types of block mode, disable echo before the block mode read begins.
Echo should be disabled if a terminal user is entering data that should not
appear on the screen (for example, passwords or lockwords).
Echo should be disabled when connecting some nonsupported devices to an
asynchronous port.
Reset in break mode; not reset after FCLOSE. (Default)
Enable echo facility
Returns a value indicating the previous echo status:
0
Echo ON
1
Echo OFF
When enabled, all characters transmitted to the DTC are echoed onto the
terminal's screen (DTC echo). When the system is initialized, all
characters are echoed except for XON, XOFF, NULL, DEL, and DC2. During
binary reads, all characters are passed as data and echoed. For this reason,
echo should be disabled while in binary mode.
During block mode processing, echo should be disabled and local echo should
be used to cause the terminal to write data back to the screen. If VPLUS is
being used for block mode applications, this is done automatically. For all
other types of block mode, disable echo before the block mode read begins.
Echo should be disabled if a terminal user is entering data that should not
appear on the screen (for example, passwords or lockwords).
Echo should be disabled when connecting some nonsupported devices to an
asynchronous port.
Reset in break mode; not reset after FCLOSE. (Default)
Disable system break function
Enter a value of 1 to disable the system break function.
System break is enabled by default for any terminal on which a session is
active. If a user presses BREAK or a process calls the
CAUSEBREAK intrinsic, the system attempts to interrupt the
processing and place the terminal at the command interpreter level. Many
system commands and program commands (that invoke subsystems or run user
programs) are breakable.
When the system break is enabled and received, EOR, read timer, terminal
mode, and echo values are saved by the DTS software. This allows
restoration when normal processing is resumed. If a system break is entered
during processing of a character mode read or write, data is lost. Any read
that is interrupted by a break is reissued by the system after a
RESUME command is entered.
Some application programs change the settings of terminals and/or the
characteristics of their device files. In these cases, it may be
undesirable to allow system break processing to occur. For example, disable
system break when using block mode. This prevents data loss or corruption
that could occur if BREAK is pressed during a block mode read.
Reset after FCLOSE. If BREAK is pressed while system break
is disabled, no action is taken by any level of software. System break has
no effect on a device with no active session.
Enable system break function
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
System break is enabled by default for any terminal on which a session is
active. If a user presses BREAK or the CAUSEBREAK intrinsic
is called, the system attempts to interrupt the processing and place the
terminal at the command interpreter level. Many system commands and program
commands (that invoke subsystems or run user programs) are breakable.
When the system break is enabled and received, EOR, read timer, terminal
mode, and echo values are saved by the DTS software. This allows
restoration when normal processing is resumed. If a system break is entered
during processing of a character mode read or write, data is lost. Any read
that is interrupted by a break is reissued by the system after a
RESUME command is entered.
Some application programs change the settings of terminals and/or the
characteristics of their device files. In these cases, it may be
undesirable to allow system break processing to occur. For example, disable
system break when using block mode. This prevents data loss or corruption
that could occur if BREAK is pressed during a block mode read.
Reset after FCLOSE. (Default) If BREAK is pressed while
system break is disabled, no action is taken by any level of software.
System break has no effect on a device with no active session.
Disable subsystem break function
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
Subsystem break is initially disabled on all devices; it must be enabled
before it can be used. It is available only for devices running sessions
and has no effect on programmatically controlled devices. Subsystem break
is reset to disabled at FCLOSE.
When enabled, the user can stop a program-local or subsystem-local command.
It is invoked by the subsystem break character. (The default subsystem
break character is CTRL-Y.)
When enabled for a terminal connected through PAD, the subsystem break must
be followed by RETURN to signal the PAD that data is ready.
Before enabling the subsystem break, call the XCONTRAP intrinsic
to arm the subsystem break trap procedure. When a subsystem break is
entered, the subsystem break trap is disarmed. The RESETCONTROL
intrinsic must be called to allow another subsystem break to occur.
Subsystem break processing is summarized as follows:
A user-written procedure must be provided defining how the
subsystem break trap handler will react upon receipt of a subsystem
break. The user program must contain:
The user written procedure.
A call to XCONTRAP, specifying the external label of
the procedure; this arms the subsystem break trap.
A call to FCONTROLItemnum=17,
enabling the subsystem break function.
A call to RESETCONTROL when the program is ready to
receive another subsystem break.
A new subsystem break character can be defined through
FCONTROLItemnum=41 if the terminal is
placed in transparent mode or through FDEVICECONTROL, which
allows a subsystem break character to be defined without placing the
device in the transparent mode.
At any time, FCONTROL can be called to disable the
subsystem break.
Reset in break mode; reset after FCLOSE. (Default)
Enable subsystem break function
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
Subsystem break is initially disabled on all devices; it must be enabled
before it can be used. It is available only for devices running sessions,
and has no effect on programmatically controlled devices. Subsystem break
is reset to disabled at FCLOSE.
When enabled, the user can stop a program-local or subsystem-local command.
It is invoked by the subsystem break character. (The default subsystem
break character is CTRL-Y.)
When enabled for a terminal connected through PAD, the subsystem break must
be followed by RETURN to signal the PAD that data is ready.
Before enabling the subsystem break, call the XCONTRAP intrinsic
to arm the subsystem break trap procedure. When a subsystem break is
entered, the subsystem break trap is disarmed. The RESETCONTROL
intrinsic must be called to allow another subsystem break to occur.
Subsystem break processing is summarized as follows:
A user-written procedure must be provided defining how the
subsystem break trap handler will react upon receipt of a subsystem
break. The user program must contain:
The user written procedure.
A call to XCONTRAP, specifying the external label of
the procedure; this arms the subsystem break trap.
A call to FCONTROLitemnum=17,
enabling the subsystem break function.
A call to RESETCONTROL when the program is ready to
receive another subsystem break.
A new subsystem break character can be defined through
FCONTROLitemnum=41 if the terminal is
placed in transparent mode or through FDEVICECONTROL, which
allows a subsystem break character to be defined without placing the
device in the transparent mode.
At any time, FCONTROL can be called to disable the
subsystem break.
Reset in break mode; reset after FCLOSE. (Default)
Read the terminal input timer
Item returns the measured time duration of the last read.
The result of the read duration timer is returned in hundredths of a second,
up to 655.35 seconds.
The operating system times each and every read, therefore, this call should
immediately follow the read of interest with no subsequent reads
between.
Disable parity checking and generation
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
If a call is issued against a terminal connected through PAD, CCE (2) is
returned, but the device control action does not take place.
Parity can be used for terminals opened programmatically and for those in
session mode. The default for these is to operate in 8-bit pass-through
mode (no parity).
If a terminal detects a parity error, it displays the PAD character.
If a parity error is detected by ASC software, the current read is
completed in error, and no read data is returned. The ASC software reports
the error to the program reading the data.
Enable parity checking and generation
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
If a call is issued against a terminal connected through PAD, CCE (2) is
returned, but the device control action does not take place.
Parity can be used for terminals opened programmatically and for those in
session mode. The default for these is to operate in 8-bit pass-through
mode.
If a terminal detects a parity error, it displays the PAD character.
If a parity error is detected by ASC software, the current read is
completed in error, and no read data is returned. The ASC software reports
the error to the program reading the data.
When enabled, the ASC software generates parity on outgoing data and checks
the parity errors on incoming data. After the parity is checked, the parity
bit is always set to zero. (The program using the data does not need parity
data.) Parity checking is handled the same in block mode and in character
mode.
When enabling parity, ensure that the program also requests the terminal
operator to change the physical parity setting of the terminal to the new
setting of the ASC software. Also, if the terminal is to check parity on
incoming data, the local terminal control (used to turn parity checking on
or off) should be set to ON.
Define additional end-of-record characters
Item passes the value of a character to be used as an
additional end-of-record (AEOR) character. The octal or decimal code for
the character must be in the right byte of the parameter; the left byte is
ignored. If the NULL character (%0) is specified, default EOR conditions
are restored.
Normally, character mode reads using standard editing are terminated by a
RETURN. The system echoes the carriage return and sends a linefeed
to the terminal, the cursor is positioned at the beginning of the next line,
ready for the next read. If an AEOR is assigned, an EOR character still
terminates a read as usual.
When a read is terminated by an AEOR, the AEOR character is included in
both the data and byte counts. No carriage return or line feed is sent to
the terminal. The read terminates with an error condition indicating that
the AEOR character was encountered.
The AEOR character is also recognized in transparent editing mode, along
with a user-defined EOR character. (This replaces the normal EOR character.)
To disable the AEOR character, indicate item=0.
The following are not recognized as AEOR characters:
ASCII Characters
Octal Code
Hex Code
Terminal Keys
NUL (null)
%0
$0
CTRL-@
DC1 (XON)
%21
$11
CTRL-Q
DC3 (XOFF)
%23
$13
CTRL-S
DEL (Rubout)
%31
$19
DEL
Subsystem Break
%177
$7F
CTRL-Y (default)
Note: Avoid using characters that have a special meaning specifically,
carriage return, linefeed, cancel, backspace, DC2, or escape. These
characters will be recognized and processed, but they can result in
unpredictable and unsuccessful results.
Do not use CTRL-A as an AEOR character at the console.
Disable binary mode
Item has no meaning, enter a value of 0 to satisfy internal
requirements.
Ignored for terminals connected through PAD.
Binary mode is disabled by default.
Enable binary mode
Item has no meaning, enter a value of 0 to satisfy internal
requirements.
If this call is issued to a device connected through PAD, it is ignored;
however, the next FREAD posted to the device returns an error.
When binary mode is enabled, no special characters are processed; all
characters are considered data and are passed through without any terminal
control actions being taken. After a binary read, no carriage return or
line feed is sent to the terminal. All carriage control directives are
ignored on writes. Unless echo is disabled, any ASCII DC3 (XOFF) character
passed in data is echoed to the terminal, and the terminal is suspended.
Block mode transfers cannot be made.
Binary mode does not take effect until a read is posted to the device
following the FCONTROL call. If binary mode is enabled for both
reads and writes, post a 0 byte read immediately after the call to ensure
binary mode is enabled.
Binary mode is useful for transferring 8-bit data to and from a terminal.
Because all 8-bits are considered to be data, binary mode is not compatible
with parity checking; parity must be disabled.
In session mode, a system break restores standard editing at the terminal.
If RESUME is entered following the system break, binary mode is
restored when the first read is posted.
Binary reads are terminated on byte count, as specified in the
FREAD, READ, or READX call. Errors and read
timeouts also terminate binary reads, but an error code is returned and no
data is transferred.
Disable user block mode
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
Ignored for terminals connected through PAD.
User block mode is not supported with terminal type 18.
Under system default conditions, block mode processing occurs through a
method called Hewlett-Packard block mode. The system controls the block
mode handshake if block mode transfers are being made and the program does
not need to worry about the data transfer protocol. The host transmits a
DC1 character to inform the terminal that the system is ready to receive
data. The terminal responds with a DC2 character to inform the system that
the next data transfer is a block mode transmission. The terminal then
waits for the host to send a second DC1 character to initiate the read.
When transmitting data in block mode, the terminal must be configured to be
compatible with the system and the application requesting the block mode
transfer.
Note: Data overruns can occur during block mode transfers. The program must
check for successful completion of each read, and retry as required. Use of
timers during block mode is encouraged to eliminate port "hangs" due to a
data overrun occurring when the last character is read. The standard block
mode read timer is disabled when the user block mode protocol is enabled.
Not reset in break mode; not reset after FCLOSE. (Default)
Enable user block mode
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
Ignored for terminals connected through PAD.
User block mode is not supported with terminal type 18.
When user block mode is enabled and block mode transfers are being made,
the program can intervene in the block mode handshake. A user block mode
transaction begins with the DC1 character and then the program takes
control of the handshake until the DC2 character is encountered. The
program can perform additional terminal control functions, such as
positioning the terminal cursor, performing status requests, or collating
additional space for buffers before continuing with the data transfer. When
the program is ready to receive block mode data, an additional read must be
issued (DC1 character) to complete the handshake.
When transmitting data in block mode, the terminal must be configured to be
compatible with the system and the application requesting the block mode
transfer.
Note: Data overruns can occur during block mode transfers. The program must
check for successful completion of each read, and retry as required. Use of
timers during block mode is encouraged to eliminate port "hangs" due to a
data overrun occurring when the last character is read. The standard block
mode read timer is disabled when the user block mode protocol is enabled.
Not reset in break mode; not reset after FCLOSE. Under default
conditions, user block mode is disabled.
Enable line deletion response
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
In character mode, with standard editing, the computer will output !!!,
carriage return, and line feed when the line deletion (cancel) character is
entered. This is referred to as CTRL-X echo (the default line
deletion character).
Not reset in break mode; reset after FCLOSE. (Default)
For devices connected through PAD the line deletion response is never
printed in response to the line deletion character. If this call is issued,
condition code CCE (2) is returned, but no device control action
occurs.
Disable line deletion response
Item has no meaning; enter a value of 0 to satisfy internal
requirements.
The line deletion response can be suppressed by calling this parameter. The
data is deleted in the input buffer, but no !!!, carriage return, line feed
is issued.
Not reset in break mode; reset after FCLOSE (enables line deletion
suppression, the system default condition).
For devices connected through PAD, the line deletion response is never
printed in response to the line deletion character. If this call is issued,
condition code CCE (2) is returned, but no device control action
occurs.
Set parity
Item passes a value representing the specified parity
condition and then returns the value of a previous setting:
0
No parity check on input, eighth bit set to 0 on output
(parity type = zeros)
1
No parity check on input, eighth bit set to 1 on output
(parity type = ones)
2
Even parity checked on input, even parity generated on
output (parity type = even)
3
Odd parity checked on input, odd parity generated on output
(parity type = odd)
When specified, this option changes the terminal parity setting, and the
previous setting is returned to the call as the new value of
item. It is possible to determine a terminal's parity
setting with parity disabled.
Set terminal type and speed
Item passes a value specifying line speed and terminal type.
Bits (0:11) specify the line speed; bits (11:5) specify the terminal type.
Ensure that the speed associated with a device matches the physical speed
setting of the device and modem (if part of the connection). If the device
speed is being changed programmatically, request that the speed setting be
manually changed on the device.
If an attempt is made to set an unsupported speed or terminal type,
condition code CCL (1) is returned.
Do not use this call to specify a user-defined terminal type.
If used for devices connected through PAD, the call changes the terminal
type setting, but does not change how the device actually operates.
Condition code CCE (2) is returned.
Set terminal type
Item passes the value of the system-defined terminal type
to be associated with an asynchronous port.
Changes the terminal type associated with a port to another system-defined
terminal type. The new terminal type remains in effect until another
FCONTROL call is made or the device is closed. If the device is
closed, the port resets to its configured terminal type.
The terminal type specified must be a currently supported system-defined
terminal type. If another value is used, condition code CCL (1) is returned.
This call cannot be used to change to a user-defined terminal type.
If used for a terminal connected through PAD, there is no effect on the
terminal control settings of the device. Condition code CCE (2) is
returned.
Obtain terminal type information
Item returns the terminal type associated with the
asynchronous port. Use this information to get the original setting before
calling itemnum=37 or 38.
Note: Do not confuse the current terminal type returned with the default
terminal type specified during system configuration. Changing the terminal
type during logon or through system intrinsics can cause a difference from
the configured setting. To reset the configured terminal type, use
itemnum=37 and item=0 or close the
device.
Obtain terminal output speed
Item returns the current line speed associated with an
asynchronous port in characters per second. Use this information to get the
original setting before calling itemnum=11 or 37.
Note: Do not confuse the current line speed returned with the default line
speed specified during system configuration. Changing the line speed
through system intrinsics can cause a difference from the configured
setting. To reset the configured line speed, use itemnum=37
and item=0 or close the device.
If used for a terminal connected through PAD, the value returned in
item is meaningless. Condition code CCE (2) is
returned.
Enable transparent editing
Item passes a value to be used as a subsystem break
character in bits (0:8) and a value to be used as a read terminator in bits
(8:8). Returns the values previously assigned for use as subsystem break
and read terminator characters.
When enabled, allows most special characters to be read and treated as data
and a small subset to retain their meaning:
AEOR
The AEOR character defined through a previous call to
itemnum=25. The read terminates in error, and a call
to FCHECK returns an error code of 31. The AEOR character is
passed with the data and included in the byte count.
BREAK
Causes a system break (when enabled) and transfers control to the
operating system. If the RESUME command is entered,
transparent editing is resumed.
CTRL-Q (DC1 or XON)
The resume output character of the XON/XOFF handshake. This
character is stripped from the input data when XON/XOFF protocol is
enabled.
CTRL-R (DC2)
When input as the first character, it is stripped out. A DC1
(CTRL-Q) is written to the terminal. If not input as the first
character, DC2 is a data character.
CTRL-S (DC3 or XOFF)
The stop output character of the XON/XOFF handshake. This
character is stripped from the input data when XON/XOFF protocol is
enabled.
item bits (0:8)
Specifies the character that replaces the subsystem break
character. Any character not defined as a special character in
transparent mode (including the standard subsystem break character)
can be used. If set to 0, subsystem break is disabled.
item bits (8:8)
Specifies the character that replaces the line termination
character (EOR). Any character not defined as a special character in
transparent mode can be used.
Item=0 disables transparent editing mode and returns to
standard editing mode.
Transparent mode reads can be terminated in any of the following ways:
The read encountered the EOR character defined in
item. This character functions like a RETURN
character in normal reads and is stripped when found. No carriage
return or line feed is sent to the terminal.
The read encountered an AEOR character, defined through a previous
call to FCONTROLitemnum=25. The read
completes with an error condition and the AEOR character is passed
with the input data and and included in the byte count. No carriage
return or line feed is sent to the terminal.
The expected byte count is reached. The read is terminated
normally, and carriage return and line feed are sent to the
terminal.
The read limit timer expired. All data is lost and the read
terminates in error.
Break or subsystem break processing, if not disabled, occurs in transparent
editing. During a break, the terminal operates in standard editing mode.
The terminal returns to transparent editing mode if the RESUME
command is entered. During a subsystem break, the terminal operates the way
the application program describes.
Parity processing is the same in transparent editing as it is in standard
editing.
Any FCLOSE call issued against the terminal restores standard
editing.
If used for a device connected through PAD, data is not forwarded from the
terminal immediately after the characters defined as the subsystem break or
EOR character are typed. The terminal user has to press RETURN to
cause data to be transmitted, or wait for the data forwarding timer to
expire (if set). The host software recognizes and acts on the characters
defined in item.
Aborts pending nowait I/O request
For message files, CCG (0) is returned when an outstanding I/O operation
has completed. An IOWAIT call must be issued to finish the
request.
Enable/disable extended wait
Applicable only if filenum specifies a message file. An
item value of 1 enables extended wait; permits a reader to
wait on an empty file that is not currently opened by any writer, or a
writer to wait on a full file that has no reader. This remains in effect
until an FCONTROL call is issued with an itemnum
45 and an item value of 0. An item value of
0 specifies that if a second FREAD call is issued and it
encounters an empty file that has no reader, it returns an end-of-file
condition. Each assessor must call FCONTROL45 individually.
Default: 0
Enable/disable reading writer's ID
Applicable only if filenum specifies a message file.
For interprocess communication, an item value of 1 enables
reading the writer's ID. Each record read has a two-word header. The first
word indicates the type of record:
0
Data record
1
Open record
2
Close record
The second word contains the writer's ID number. If the record is a data
record, the data follows the header. Open and close records contain no more
information. If the item value is 0, reading the writer's
ID is disabled. Only data is read to the reader's target area. The open and
close records are skipped and deleted by the file system when they come to
the head of the message queue, and the two-word header is transparent to
the reader.
Default: 0
Nondestructive read
Applicable only if filenum specifies a message file.
If the item value is 1, the next FREAD by this
reader does not delete the record. Subsequent FREAD calls are
unaffected. When item is specified as 0, the next
FREAD deletes the record.
Default: 0
Arm/disarm software interrupts
Passes a value that arms/disarms the software interrupt mechanism (valid
only if filenum specifies a message file). To arm the
file's software interrupt, pass the external procedure label (NM plabel) or
the interrupt procedure. To disarm the software interrupt, pass a value of
zero.
Append mode
Enables or disables append mode based on the value of the
item parameter. Append mode is enabled if
item is one (1) and disabled if item is
zero (0). Write operations append data at the end of a file while reads and
seeks may occur anywhere within the file when POSIX append mode is enabled
for that file.
Append mode differs from opening a file for append
access in several ways:
1
Append mode can be enabled and disabled
while a file is open. Append access is established when
opening a file and cannot be changed dynamically for a file number.
2
Append access is a process-local attribute
affecting only the access of the process which opened the file. Append
mode affects all processes sharing a logical record
pointer. (The MULTI and GMULTI options permits logical record pointers to
be shared.)
3
A file's logical record pointer can be manipulated through
FPOINT or FREADDIR when append mode is
active. Append access prohibits logical record pointer
operations. For example, call to FPOINT and FSPACE
result in an access violation for files opened for append
access.
This itemnum is supported only for byte stream files. If
the file referenced by filenum is not a byte stream file.
FCONTROL will fail with a CCL condition code. An error code of 42
(operation inconsistent with device type) is returned by FCHECK
when it is called following this FCONTROL error.
Set Nonblock
This option can be used to set and reset the Nonblock flag of a file. When
the Nonblock flag is true, any attempt to perform I/O to the file, results
in the I/O procedure returning without blocking. If the I/O can be
performed without blocking, then the I/O is completed normally. When
Nonblock is false, I/O's will block if necessary. The item
parameter must be set to 1 in order to cause the Nonblock flag to be set to
true. A value of zero will reset the Nonblock flag. Any other value fo the
item parameter results in an error being returned.
The default value of item is 0.
Not all file types support this option.
Close File on Exec
This option allows the caller to set or reset closure of a specified file
when a POSIX exec( ) function is called. An item
value of 0 causes the file remain open on an exec( ). A
value of 1 causes the file to close when an exec( ) is
performed. All other values of the item parameter return an
FSERR 8 - ILLEGAL PARAMETER VALUE error. The default value of
item is 0.
pointer to ioctl parameter structure
This item provides for compatibility with the ioct() function
found in most UNIX implementations. This option is only valid for streams
and network socket files and tape devices. Any attempt to use this option
with other file types results in an FSERR 8 - ILLEGAL PARAMETER VALUE
error.
The item parameter must point to a structure that contains
three ioctl() parameters:
Request
Arg
ioctl functional return
The first 32 bits contain a short pointer to the arg parameter.
The arg parameter is pointed to by reference due to the variable
length depending upon the requested function. The last 32 bits of the
structure contains the address of the location to write the functional
return. Due to the nature of the functional return, this item is an output
only address. In pascal, the structure is defined as follows:
The caller must correctly fill in the values of the structure before
calling the FCONTROL intrinsic. The functions that are supported
through this option are defined as standard documentation on the
ioctl() function.
NOTE:Itemnums 10 through 41 are used in changing
terminal characteristics. Included with the definition of the code is an
indication, where applicable, of whether the characteristic is reset in break
mode or after FCLOSE. Characteristics that are reset in break mode are
restored when there is a RESUME from break mode.
Operation Notes
The FCONTROL intrinsic applies to files on disk, tape, terminal, or
line printers. There are some special conditions that exist when using
FCONTROL with files on labeled magnetic tape. Some FCONTROL
functions cannot be used with labeled tapes, and other functions can produce
unexpected results. (Refer to itemnums 5, 6, 7, 8, and 9.)
NOTE: If you are performing control operations on terminal devices,
refer to the Asynchronous Serial Communications Programmer's Reference
Manual for details on FCONTROL parameters specific to terminal
control.