1 :Info: io_call: io:  2020-06-14  io_call, io
   2 
   3 Syntax as a command:  io OPERATION switchname {args}
   4 
   5 
   6 Syntax as an active function:  [io OPERATION switchname {args}]
   7 
   8 
   9 Function: performs diverse operations on specified I/O switches and
  10 returns a result.
  11 
  12 
  13 Arguments:
  14 OPERATION
  15    designates the operation to be performed.  See "List of operations"
  16    below.  For a detailed description of each operation, type:
  17      help io.OPERATION
  18 switchname
  19    is the name of the I/O switch through which the operation is
  20    performed.  (In the next two sections SW means switchname.)
  21 args
  22    can be one or more arguments, depending on the particular operation
  23    to be performed.
  24 
  25 
  26 List of operations:
  27    For a detailed description of each operation, type:
  28      help io.OPERATION
  29 attach
  30    uses attach_description to attach SW.
  31 attach_desc
  32    prints the attach description for SW.
  33 attached
  34    prints true if SW is attached.
  35 close
  36    closes SW.
  37 close_file
  38    closes SW with a close description.
  39 closed
  40    prints true if SW is closed.
  41 
  42 
  43 control
  44    performs the named order operation on SW; args depend upon the
  45    particular order and I/O module through with SW is attached.
  46 delete_record, delete
  47    deletes the current record in the file to which SW is attached.
  48 destroy_iocb
  49    destroys SW.
  50 detach
  51    detaches SW.
  52 detach_iocb
  53    detachs SW.
  54 detached
  55    prints true if SW is detached.
  56 
  57 
  58 find_iocb
  59    prints the location of SW.  Switch is created if not already
  60    existing.
  61 get_chars
  62    reads and prints the next N characters from SW; control_args can be:
  63    -segment, -allow_newline, -append_newline, -remove_newline, -lines.
  64 get_line
  65    reads and prints the next line from SW; control_args can be:
  66    -segment, -allow_newline, -append_newline, -remove_newline, -lines.
  67 io_module
  68    prints the name of the I/O module through which SW is attached.
  69 look_iocb
  70    prints the location of SW.  An error occurs if SW does not exist.
  71 
  72 
  73 modes
  74    prints the old modes associates with SW and sets the new modes given
  75    in STR.
  76 move_attach
  77    moves the attachment from SW to SW2.  SW is left in detached state.
  78 open
  79    opens SW with given mode.
  80 open_desc
  81    prints the current opening mode for SW.
  82 open_file
  83    opens SW with given mode and open description.
  84 opened
  85    prints true if SW is opened.
  86 
  87 
  88 position
  89    positions the file to which SW is attached; type can be: bof; eof;
  90    forward J, fwd J, f J; reverse J, rev J, r J; I {J} (I and J are
  91    integers).
  92 print_iocb
  93    prints all data from the control block for SW.
  94 put_chars
  95    outputs STR to SW; control_args can be: -segment, -allow_newline,
  96    -append_newline, -remove_newline, -lines.  If you omit STR, give
  97    -segment.
  98 read_key
  99    reads and prints key and record length of the next record in the
 100    indexed file to which SW is attached.
 101 
 102 
 103 read_length
 104    reads and prints the length of the next record in the structured
 105    file to which SW is attached.
 106 read_record, read
 107    reads and prints the next record from SW; control_args can be:
 108    -segment, -allow_newline, -append_newline, -remove_newline, -lines.
 109 rewrite_record, rewrite
 110    replaces with STR current record in file to which SW is attached;
 111    control_args can be: -segment, -allow_newline, -append_newline,
 112    -remove_newline, -lines.  If you omit STR, give -segment.
 113 
 114 
 115 seek_key
 116    positions the indexed file to which SW is attached to the record
 117    with the given key.  If the record is not found, key becomes key for
 118    insertion of the new record.
 119 test_mode
 120    prints true if mode appears in modes string of SW; prints false
 121    if ^mode appears.  Prints error if mode does not appear or is not
 122    an on/off mode.
 123 valid_mode
 124    prints true if mode or ^mode appears in modes string of SW;
 125    prints false if either does not appear.
 126 
 127 
 128 valid_op
 129    prints true if operation is valid for SW, given its current
 130    attachment and opening mode.
 131 write_record, write
 132    writes STR to SW; control_args can be: -segment, -allow_newline,
 133    -append_newline, -remove_newline, -lines.  If you omit STR, give
 134    -segment.
 135 
 136 
 137 :Info: io.attach:  1985-04-02  io attach operation
 138 
 139 Syntax as a command:  io attach switchname attach_description
 140 
 141 
 142 Function: attaches the I/O switch using the designated I/O module.
 143 If a control block for the I/O switch does not already exist, one is
 144 created.
 145 
 146 
 147 Arguments:
 148 attach
 149    the operation being performed.
 150 switchname
 151    is the name of the I/O switch through which the operation is
 152    performed.
 153 attach_description
 154    is the concatenation of modulename and args separated by blanks.
 155    It must conform to the requirements of the I/O module.  If the I/O
 156    modulename is specified by a pathname, it is initiated with a
 157    reference name equal to the entryname.  If the entryname or
 158    reference name does not contain a dollar sign, the attachment is
 159    made by calling modulename$modulenameattach.  If you supply a $,
 160    the entry point specified is called.  (See "Entry Point Names" in
 161    the Programmer's Reference Manual.)
 162 
 163 
 164 :Info: io.attach_desc:  1985-04-02  io attach_desc operation
 165 
 166 Syntax as a command:  io attach_desc switchname
 167 
 168 
 169 Syntax as an active function:
 170    [io attach_desc switchname {-control_arg}]
 171 
 172 
 173 Function: prints or returns the attach description of the switch,
 174 quoted unless you give -no_quote.
 175 
 176 
 177 Arguments:
 178 attach_desc
 179    the operation being performed.
 180 switchname
 181    is the name of the I/O switch through which the operation is
 182    performed.
 183 
 184 
 185 Control arguments:
 186 -no_quote, -nq
 187    does not enclose the returned data in quotes.
 188 
 189 
 190 :Info: io.attached:  1985-05-02  io attached operation
 191 
 192 Syntax as a command:  io attached switchname
 193 
 194 
 195 Syntax as an active function:  [io attached switchname]
 196 
 197 
 198 Function: prints or returns true if the switch is attached, false
 199 otherwise.
 200 
 201 
 202 Arguments:
 203 attached
 204    the operation being performed.
 205 switchname
 206    is the name of the I/O switch through which the operation is
 207    performed.
 208 
 209 
 210 :Info: io.close:  1985-04-02  io close operation
 211 
 212 Syntax as a command:  io close switchname
 213 
 214 
 215 Function: closes the I/O switch.
 216 
 217 
 218 Arguments:
 219 close
 220    the operation being performed.
 221 switchname
 222    is the name of the I/O switch through which the operation is
 223    performed.
 224 
 225 
 226 :Info: io.close_file:  1985-04-02  io close_file operation
 227 
 228 Syntax as a command:  io close_file switchname {args}
 229 
 230 
 231 Function: closes the I/O switch with the specified description.  The
 232 close_file description is the concatenation of all args separated by
 233 blanks.  It must conform to the requirements of the I/O module.
 234 
 235 
 236 Arguments:
 237 close_file
 238    the operation being performed.
 239 switchname
 240    is the name of the I/O switch through which the operation is
 241    performed.
 242 args
 243    can be one or more arguments, depending on what is permitted by the
 244    particular I/O module.
 245 
 246 
 247 :Info: io.closed:  1985-04-02  io closed operation
 248 
 249 Syntax as a command:  io closed switchname
 250 
 251 
 252 Syntax as an active function:  [io closed switchname]
 253 
 254 
 255 Function: prints or returns true if the switch is closed, false
 256 otherwise.
 257 
 258 
 259 Arguments:
 260 closed
 261    the operation being performed.
 262 switchname
 263    is the name of the I/O switch through which the operation is
 264    performed.
 265 
 266 
 267 :Info: io.control:  1985-04-02  io control operation
 268 
 269 Syntax as a command:  io control switchname order {args}
 270 
 271 
 272 Syntax as an active function:  [io control switchname order {args}]
 273 
 274 
 275 Function: applies only when the I/O switch is attached via an I/O
 276 module that supports the control I/O operation.  The exact format of
 277 the command line depends on the order being issued and the I/O module
 278 being used.  For more details see "Control Operations from Command
 279 Level" in the appropriate I/O module.  If the I/O module supports the
 280 control operation and the paragraph just referenced does not appear,
 281 assume that only control orders that do not require an info_structure
 282 can be performed with the io_call command.  This is true because this
 283 command/active function uses a null info_ptr.  (See the iox_$control
 284 entry point in the Subroutines manual and "Performing Control
 285 Operations from Command Level" and the I/O module description in the
 286 Programmer's Reference Manual.)
 287 
 288 The active function returns a value that depends on the I/O module and
 289 the order specified.
 290 
 291 
 292 Arguments:
 293 control
 294    the operation being performed.
 295 switchname
 296    is the name of the I/O switch through which the operation is
 297    performed.
 298 order
 299    is one of the orders accepted by the I/O module used in the
 300    attachment of the I/O switch.
 301 args
 302    are additional arguments dependent upon the order being issued and
 303    the I/O module being used.
 304 
 305 
 306 :Info: io.delete_record: io.delete:  1985-04-02  io delete_record operation
 307 
 308 Syntax as a command:  io delete switchname
 309 
 310 
 311 Function: deletes the current record in the file to which the I/O
 312 switch is attached.  The current record is determined as in
 313 rewrite_record.
 314 
 315 
 316 Arguments:
 317 delete_record, delete
 318    the operation being performed.
 319 switchname
 320    is the name of the I/O switch through which the operation is
 321    performed.
 322 
 323 
 324 :Info: io.destroy_iocb:  1985-04-02  io destroy_iocb operation
 325 
 326 Syntax as a command:  io destroy_iocb switchname
 327 
 328 
 329 Function: destroys the I/O switch by deleting its control block.  Be
 330 sure the switch is detached before using this command.  Any pointers
 331 to the I/O switch become invalid.
 332 
 333 
 334 Arguments:
 335 destroy_iocb
 336    the operation being performed.
 337 switchname
 338    is the name of the I/O switch through which the operation is
 339    performed.
 340 
 341 
 342 :Info: io.detach:  1985-04-02  io detach operation
 343 
 344 Syntax as a command:  io detach switchname {args}
 345 
 346 
 347 Function: detaches the I/O switch with the specified description.  The
 348 detach description is the concatenation of all args separated by
 349 blanks.  It must conform to the requirements of the I/O module.
 350 
 351 
 352 Arguments:
 353 detach
 354    the operation being performed.
 355 switchname
 356    is the name of the I/O switch through which the operation is
 357    performed.
 358 args
 359    can be one or more arguments, depending on what is permitted by the
 360    particular I/O module.
 361 
 362 
 363 Notes: If there are no arguments after switchname, this request is
 364 synonymous with the detach_iocb request.  This means that if you
 365 supply no detach description on the command line, detach acts
 366 essentially as a short name for detach_iocb.
 367 
 368 
 369 :Info: io.detach_iocb:  1985-04-02  io detach_iocb operation
 370 
 371 Syntax as a command:  io detach_iocb switchname
 372 
 373 
 374 Function: detaches the I/O switch.
 375 
 376 
 377 Arguments:
 378 detach_iocb
 379    the operation being performed.
 380 switchname
 381    is the name of the I/O switch through which the operation is
 382    performed.
 383 
 384 
 385 :Info: io.detached:  1985-04-04  io detached operation
 386 
 387 Syntax as a command:  io detached switchname
 388 
 389 
 390 Syntax as an active function:  [io detached switchname]
 391 
 392 
 393 Function: prints or returns true if the switch is detached, false
 394 otherwise.
 395 
 396 
 397 Arguments:
 398 detached
 399    the operation being performed.
 400 switchname
 401    is the name of the I/O switch through which the operation is
 402    performed.
 403 
 404 
 405 :Info: io.find_iocb:  1985-04-02  io find_iocb operation
 406 
 407 Syntax as a command:  io find_iocb switchname
 408 
 409 
 410 Syntax as an active function:  [io find_iocb switchname]
 411 
 412 
 413 Function: prints or returns the location of the control block for the
 414 I/O switch.  If it does not already exist, the control block is
 415 created.
 416 
 417 
 418 Arguments:
 419 find_iocb
 420    the operation being performed.
 421 switchname
 422    is the name of the I/O switch through which the operation is
 423    performed.
 424 
 425 
 426 :Info: io.get_chars:  1986-08-06  io get_chars operation
 427 
 428 Syntax as a command:  io get_chars switchname {N} {-control_args}
 429 
 430 
 431 Syntax as an active function:
 432    [io get_chars switchname {N} {-control_args}]
 433 
 434 
 435 Function: reads the next N characters from the file or device to which
 436 the I/O switch is attached.
 437 
 438 
 439 Arguments:
 440 get_chars
 441    the operation being performed.
 442 switchname
 443    is the name of the I/O switch through which the operation is
 444    performed.
 445 N
 446    is a decimal number greater than zero specifying the number of
 447    characters to read.
 448 
 449 
 450 Control arguments:
 451 -allow_newline, -alnl
 452    does not add to nor delete from the end of the line any newline
 453    character.  (Default, when you select -segment)
 454 -append_newline, -apnl
 455    adds a newline character to the end of the line if one is not
 456    present.  (Default, when you choose no -segment)
 457 -lines
 458    specifies that the offset, if given, is measured in lines rather
 459    than in characters.  This control argument has meaning only if you
 460    also supply -segment; you can't use it with the active function.
 461 
 462 
 463 -no_quote, -nq
 464    returns the data unquoted.  (Default for active function only)
 465 -remove_newline, -rmnl
 466    deletes the newline character, if present, from the end of the
 467    line.  (Default for active function)
 468 
 469 
 470 -segment path {offset}, -sm path {offset}
 471    specifies that the data read from the I/O switch is to be stored in
 472    the segment given by path.  You can optionally describe the location
 473    at which to begin writing in path with the offset parameter.  This
 474    is normally specified as a character offset (i.e., the number of
 475    characters to skip over before storing the new data in the segment).
 476    For example, an offset of 0 causes the new data to overwrite the
 477    entire file.  When you also give -lines, then offset is a line
 478    offset (i.e., the number of lines to skip over before storing the
 479    new data in the segment).  For example, an offset of 1 line begins
 480    storing data at the second line of the file.  If you omit offset,
 481    new data is appended to the end of the segment.  You can't use this
 482    control argument with the active function.
 483 
 484 
 485 Notes: The disposition of the characters read is the same as the one
 486 described under the get_line operation; that is, they are written upon
 487 user_output if you specify no -segment or stored in a segment if you
 488 give -segment.  As an active function, returns the data read as a
 489 quoted string, unless you use -no_quote.  A trailing newline character
 490 is deleted.  If you don't supply the maximum number of characters N,
 491 the maximum segment size is assumed.
 492 
 493 
 494 :Info: io.get_line:  1986-08-06  io get_line operation
 495 
 496 Syntax as a command:  io get_line switchname {N} {-control_args}
 497 
 498 
 499 Syntax as an active function:
 500    [io get_line switchname {N} {-control_args}]
 501 
 502 
 503 Function: reads the next line from the file or device to which the I/O
 504 switch is attached.  If you give N and the line is longer than N, then
 505 only the first N characters are read.  The active function returns the
 506 data read as a quoted string, unless you supply -no_quote.  A trailing
 507 newline character is deleted.  If you don't supply the maximum number
 508 of characters N, the maximum segment size is assumed.
 509 
 510 
 511 Arguments:
 512 get_line
 513    the operation being performed.
 514 switchname
 515    is the name of the I/O switch through which the operation is
 516    performed.
 517 N
 518    is a decimal number greater than zero specifying the maximum number
 519    of characters to be read.
 520 
 521 
 522 Control arguments:
 523 -allow_newline, -alnl
 524    does not add to nor delete from the end of the line any newline
 525    character.  (Default, when you select -segment)
 526 -append_newline, -apnl
 527    adds a newline character to the end of the line if one is not
 528    present.  (Default, when you choose no -segment)
 529 -lines
 530    specifies that the offset, if given, is measured in lines rather
 531    than in characters.  This control argument has meaning only if you
 532    also supply -segment; you can't use it with the active function.
 533 
 534 
 535 -no_quote, -nq
 536    returns the data unquoted.  (Default for active function only)
 537 -remove_newline, -rmnl
 538    deletes the newline character, if present, from the end of the
 539    line.  (Default for active function)
 540 
 541 
 542 -segment path {offset}, -sm path {offset}
 543    specifies that the data read from the I/O switch is to be stored in
 544    the segment given by path.  You can optionally describe the location
 545    at which to begin writing in path with the offset parameter.  This
 546    is normally specified as a character offset (i.e., the number of
 547    characters to skip over before storing the new data in the segment).
 548    For example, an offset of 0 causes the new data to overwrite the
 549    entire file.  When you also give -lines, then offset is a line
 550    offset (i.e., the number of lines to skip over before storing the
 551    new data in the segment).  For example, an offset of 1 line begins
 552    storing data at the second line of the file.  If you omit offset,
 553    new data is appended to the end of the segment.  You can't use this
 554    control argument with the active function.
 555 
 556 
 557 Notes: If you select no -segment, the line read is written onto the
 558 I/O switch user_output, with a newline character appended if one is
 559 not present and if you have supplied neither allow_newline nor
 560 -remove_newline.
 561 
 562 If you give -segment, the line is stored in the segment specified by
 563 path; if this segment does not exist, it is created.  If you use
 564 offset, the line is stored at that position relative to the start of
 565 the segment; this is normally measured in characters, unless you have
 566 selected -lines.  If you omit offset, the line is appended to the end
 567 of the segment.  The bit count of the segment is always updated to a
 568 point beyond the newly added data.  If the segment contains a trailing
 569 newline and you haven't chosen -remove_newline, that newline remains;
 570 if the segment does not contain a trailing newline and you haven't
 571 specified -append_newline, no newline is appended.
 572 
 573 
 574 :Info: io.io_module:  1985-04-02  io io_module operation
 575 
 576 Syntax as a command:  io io_module switchname
 577 
 578 
 579 Syntax as an active function:  [io io_module switchname]
 580 
 581 
 582 Function: prints or returns the name of the I/O module through which
 583 the switch is attached.
 584 
 585 
 586 Arguments:
 587 io_module
 588    the operation being performed.
 589 switchname
 590    is the name of the I/O switch through which the operation is
 591    performed.
 592 
 593 
 594 :Info: io.look_iocb:  1985-04-02  io look_iocb operation
 595 
 596 Syntax as a command:  io look_iocb switchname
 597 
 598 
 599 Syntax as an active function:  [io look_iocb switchname]
 600 
 601 
 602 Function: prints, on user_output, the location of the control block
 603 for the I/O switch; if this switch does not exist, an error is
 604 printed.  The active function returns true if the specified iocb
 605 exists, false otherwise.
 606 
 607 
 608 Arguments:
 609 look_iocb
 610    the operation being performed.
 611 switchname
 612    is the name of the I/O switch through which the operation is
 613    performed.
 614 
 615 
 616 :Info: io.modes:  1985-04-02  io modes operation
 617 
 618 Syntax as a command:  io modes switchname {string} {-control_arg}
 619 
 620 
 621 Syntax as an active function:  [io modes switchname {string}]
 622 
 623 
 624 Function: sets only new modes specified in string and then prints the
 625 old modes on user_output; applies only when the I/O switch is attached
 626 via an I/O module that supports modes.  The active function performs
 627 the specified modes operation and returns the old modes.
 628 
 629 
 630 Arguments:
 631 modes
 632    the operation being performed.
 633 switchname
 634    is the name of the I/O switch through which the operation is
 635    performed.
 636 string
 637    is a sequence of modes separated by commas.  The string must not
 638    contain blanks.  See the description of the I/O module attached
 639    to the switch for a list of acceptable modes.
 640 
 641 
 642 Control arguments:
 643 -brief, -bf
 644    suppresses printing of the old modes.
 645 
 646 
 647 Notes: If the switch name is user_i/o, the command refers to the modes
 648 controlling your terminal.
 649 
 650 
 651 :Info: io.move_attach:  1985-04-02  io move_attach operation
 652 
 653 Syntax as a command:  io move_attach switchname switchname2
 654 
 655 
 656 Function: moves the attachment of the first I/O switch (switchname) to
 657 the second I/O switch (switchname2).  The original I/O switch is left
 658 detached.
 659 
 660 
 661 Arguments:
 662 move_attach
 663    the operation being performed.
 664 switchname
 665    is the name of the I/O switch through which the operation is
 666    performed.
 667 switchname2
 668    is the name of a second I/O switch.
 669 
 670 
 671 :Info: io.open:  1985-04-02  io open operation
 672 
 673 Syntax as a command:  io open switchname mode
 674 
 675 
 676 Function: opens the I/O switch with the specified opening mode.
 677 
 678 
 679 Arguments:
 680 open
 681    the operation being performed.
 682 switchname
 683    is the name of the I/O switch through which the operation is
 684    performed.
 685 
 686 
 687 List of modes:
 688    The following opening modes are accepted:
 689 direct_input, di
 690 direct_output, do
 691 direct_update, du
 692 keyed_sequential_input, ksqi
 693 keyed_sequential_output, ksqo
 694 keyed_sequential_update, ksqu
 695 sequential_input, sqi
 696 sequential_output, sqo
 697 sequential_input_output, sqio
 698 sequential_update, squ
 699 stream_input, si
 700 stream_output, so
 701 stream_input_output, sio
 702 
 703 
 704 :Info: io.open_desc:  1985-04-02  io open_desc operation
 705 
 706 Syntax as a command:  io open_desc switchname
 707 
 708 
 709 Syntax as an active function:  [io open_desc switchname {-no_quote}]
 710 
 711 
 712 Function: prints or returns the current open description
 713 (stream_input, etc.), quoted.
 714 
 715 
 716 Arguments:
 717 open_desc
 718    the operation being performed.
 719 switchname
 720    is the name of the I/O switch through which the operation is
 721    performed.
 722 
 723 
 724 :Info: io.open_file:  1985-04-02  io open_file operation
 725 
 726 Syntax as a command:  io open_file switchname mode {args}
 727 
 728 
 729 Function: open the I/O switch with the specified opening mode and
 730 description.  The open_file description is the concatenation of all
 731 args separated by blanks.  It must conform to the requirements of the
 732 I/O module.
 733 
 734 
 735 Arguments:
 736 open_file
 737    the operation being performed.
 738 switchname
 739    is the name of the I/O switch through which the operation is
 740    performed.
 741 args
 742    can be one or more arguments, depending on what is permitted by the
 743    particular I/O module.
 744 
 745 
 746 List of modes:
 747    The following opening modes are accepted:
 748 direct_input, di
 749 direct_output, do
 750 direct_update, du
 751 keyed_sequential_input, ksqi
 752 keyed_sequential_output, ksqo
 753 keyed_sequential_update, ksqu
 754 sequential_input, sqi
 755 sequential_output, sqo
 756 sequential_input_output, sqio
 757 sequential_update, squ
 758 stream_input, si
 759 stream_output, so
 760 stream_input_output, sio
 761 
 762 
 763 :Info: io.opened:  1985-04-02  io opened operation
 764 
 765 Syntax as a command:  io opened switchname
 766 
 767 
 768 Syntax as an active function:  [io opened switchname]
 769 
 770 
 771 Function: prints or returns true if the switch is open, false
 772 otherwise.
 773 
 774 
 775 Arguments:
 776 opened
 777    the operation being performed.
 778 switchname
 779    is the name of the I/O switch through which the operation is
 780    performed.
 781 
 782 
 783 :Info: io.position:  1985-04-02  io position operation
 784 
 785 Syntax as a command:  io position switchname type
 786 
 787 
 788 Syntax as an active function:  [io position switchname type]
 789 
 790 
 791 Function: positions the file to which the I/O switch is attached.
 792 
 793 
 794 Arguments:
 795 position
 796    the operation being performed.
 797 switchname
 798    is the name of the I/O switch through which the operation is
 799    performed.
 800 
 801 
 802 List of types:
 803 bof
 804    sets position to beginning of file.
 805 eof
 806    sets position to end of file.
 807 forward N, fwd N, f N
 808    sets position forward N records or lines (same as reverse -N).
 809 reverse N, rev N, r N
 810    sets position back N records (same as forward -N records).  Any
 811    other numeric argument or pair of numeric arguments can be
 812    specified, but its function depends on the I/O module being used
 813    and cannot be implemented for all I/O modules.
 814 
 815 
 816 Notes: If type is bof, the file is positioned to its beginning, so
 817 that the next record is the first record (structured files) or the
 818 next byte is the first byte (unstructured files).  If type is eof, the
 819 file is positioned to its end; the next record (or next byte) is at
 820 the end-of-file position.  If type is forward or reverse, the file is
 821 positioned forwards or backwards over records (structured files) or
 822 lines (unstructured files).  The number of records or lines skipped is
 823 determined by the absolute value of N.  The active function returns
 824 true if it succeed, false otherwise.
 825 
 826 
 827 In the case of unstructured files, the next-byte position after the
 828 operation is at a byte immediately following a newline character (or
 829 at the first byte in the file or at the end of the file).  The number
 830 of newline characters moved over is the absolute value of N.
 831 
 832 If the I/O switch is attached to a device, you are only allowed
 833 forward skips; this discards the next N lines input from the device.
 834 
 835 
 836 :Info: io.print_iocb:  1985-04-02  io print_iocb operation
 837 
 838 Syntax as a command:  io print_iocb switchname
 839 
 840 
 841 Function: prints, on user_output, all the data in the control block
 842 for the I/O switch, including all pointers and entry variables.
 843 
 844 
 845 Arguments:
 846 print_iocb
 847    the operation being performed.
 848 switchname
 849    is the name of the I/O switch through which the operation is
 850    performed.
 851 
 852 
 853 :Info: io.put_chars:  1986-08-06  io put_chars operation
 854 
 855 Syntax as a command:  io put_chars switchname {string} {-control_args}
 856 
 857 
 858 Function: outputs a character string or an entire segment to a
 859 specified I/O switch.
 860 
 861 
 862 Arguments:
 863 put_chars
 864    the operation being performed.
 865 switchname
 866    is the name of the I/O switch through which the operation is
 867    performed.
 868 string
 869    can be any character string.
 870 
 871 
 872 Control arguments:
 873 -allow_newline, -alnl
 874    does not add to nor delete from the end of the line any newline
 875    character.
 876 -append_newline, -apnl
 877    adds a newline character to the end of the line if one is not
 878    present.  (Default)
 879 -lines
 880    specifies that the offset and length operands of -segment are
 881    measured in lines rather than in characters.  This control argument
 882    has meaning only if you also supply -segment.
 883 -remove_newline, -rmnl
 884    does not append a newline character to the end of the output string
 885    or segment even if one is not present at the end.
 886 
 887 
 888 -segment path {{offset} length}, -sm path {{offset} length}
 889    specifies that the data for the output operation is to be found in
 890    the segment specified by path.  You can optionally describe the
 891    location and length of the data with offset and length parameters.
 892    These are normally specified as a character offset (i.e., 0
 893    identifies the first character of the segment) and character length.
 894    When you also give -lines, they are specified as a line offset and
 895    line count.  If you give no offset, 0 is assumed.  If you give no
 896    length and offset, the entire segment is used.
 897 -string STR, -str STR
 898    specifies an output string that can have a leading hyphen.
 899 
 900 
 901 Notes: The string argument and -segment are mutually exclusive.  If
 902 you supply a string, the contents of the string are output to the I/O
 903 switch.  If you supply -segment, the data is taken from the segment
 904 specified by path, at the offset and length given.
 905 
 906 If the I/O switch is attached to a device, io_call transmits the
 907 characters from the string or the segment to the device.  If the I/O
 908 switch is attached to an unstructured file, the data is added to the
 909 end of the file.
 910 
 911 
 912 :Info: io.read_key:  1985-04-02  io read_key operation
 913 
 914 Syntax as a command:  io read_key switchname
 915 
 916 
 917 Syntax as an active function:  [io read_key switchname {-control_arg}]
 918 
 919 
 920 Function: prints, on user_output, the key and record length of the
 921 next record in the indexed file to which the I/O switch is attached.
 922 The file's position is not changed.  The active function returns the
 923 value of the key, quoted unless you select -no_quote.
 924 
 925 
 926 Arguments:
 927 read_key
 928    the operation being performed.
 929 switchname
 930    is the name of the I/O switch through which the operation is
 931    performed.
 932 
 933 
 934 Control arguments:
 935 -no_quote, -nq
 936    does not enclose the returned data in quotes.  Data containing
 937    spaces is quoted by default.
 938 
 939 
 940 :Info: io.read_length:  1985-04-02  io read_length operation
 941 
 942 Syntax as a command:  io read_length switchname
 943 
 944 
 945 Syntax as an active function:  [io read_length switchname]
 946 
 947 
 948 Function: prints, on user_output, the length of the next record in the
 949 structured file to which the I/O switch is attached.  The file's
 950 position is not changed.  The active function returns the length of
 951 the next record, in bytes.
 952 
 953 
 954 Arguments:
 955 read_length
 956    the operation being performed.
 957 switchname
 958    is the name of the I/O switch through which the operation is
 959    performed.
 960 
 961 
 962 :Info: io.read_record: io.read:  1986-08-06  io read_record operation
 963 
 964 Syntax as a command:  io read switchname {N} {-control_args}
 965 
 966 
 967 Syntax as an active function:  [io read switchname {N} {-control_args}]
 968 
 969 
 970 Function: reads the next record from the file to which the I/O switch
 971 is attached into a buffer of length N.
 972 
 973 
 974 Arguments:
 975 read_record, read
 976    the operation being performed.
 977 switchname
 978    is the name of the I/O switch through which the operation is
 979    performed.
 980 N
 981    is a decimal integer greater than zero specifying the size of the
 982    buffer to use.
 983 
 984 
 985 Control arguments:
 986 -allow_newline, -alnl
 987    does not add to nor delete from the end of the line any character.
 988    (Default for command)
 989 -append_newline, -apnl
 990    adds a newline character to the end of the line if one is not
 991    present.
 992 -lines
 993    specifies that the offset, if given, is measured in lines rather
 994    than in characters.  This control argument has meaning only if you
 995    also supply -segment; you can't use it with the active function.
 996 
 997 
 998 -no_quote, -nq
 999    returns the data unquoted.  Active function usage only.
1000 -remove_newline
1001    deletes the newline character, if present, from the end of the
1002    line.  (Default for active function)
1003 
1004 
1005 -segment path {offset}, -sm path {offset}
1006    specifies that the data read from the I/O switch is to be stored in
1007    the segment given by path.  You can optionally describe the location
1008    at which to begin writing in path with the offset parameter.  This
1009    is normally specified as a character offset (i.e., the number of
1010    characters to skip over before storing the new data in the segment).
1011    For example, an offset of 0 causes the new data to overwrite the
1012    entire file.  When you also give -lines, then offset is a line
1013    offset (i.e., the number of lines to skip over before storing the
1014    new data in the segment).  For example, an offset of 1 line begins
1015    storing data at the second line of the file.  If you omit offset,
1016    new data is appended to the end of the segment.  You can't use this
1017    control argument with the active function.
1018 
1019 
1020 Notes: If you don't supply -segment, the record (or the part of it
1021 that fits into the buffer) is printed on user_output.  If you give
1022 -segment, the record is stored in a segment as explained under the
1023 get_chars operation.
1024 
1025 The active function returns the data read as a quoted string, unless
1026 you select -no_quote.  A trailing newline character is deleted.  If
1027 you don't give the maximum number of characters N, the maximum segment
1028 size is assumed.
1029 
1030 
1031 :Info: io.rewrite_record: io.rewrite:  1986-08-06  io rewrite_record operation
1032 
1033 Syntax as a command:  io rewrite switchname {string} {-control_args}
1034 
1035 
1036 Function: replaces the current record in the file to which the I/O
1037 switch is attached.
1038 
1039 
1040 Arguments:
1041 rewrite_record, rewrite
1042    the operation being performed.
1043 switchname
1044    is the name of the I/O switch through which the operation is
1045    performed.
1046 string
1047    is any character string.
1048 
1049 
1050 Control arguments:
1051 -allow_newline, -alnl
1052    does not add to nor delete from the end of the line any newline
1053    character.  (Default, when you select -segment)
1054 -append_newline, -apnl
1055    adds a newline character to the end of the line if one is not
1056    present.
1057 -lines
1058    specifies that the offset and length operands of -segment are
1059    measured in lines rather than in characters.  This control argument
1060    has meaning only if you also supply -segment.
1061 -no_quote, -nq
1062    returns the data unquoted.  Active function usage only.
1063 
1064 
1065 -remove_newline, -rmnl
1066    deletes the newline character, if present, from the end of the
1067    line.  (Default if you give no -segment)
1068 -segment path {{offset} length}, -sm path {{offset} length}
1069    specifies that the data for the output operation is to be found in
1070    the segment specified by path.  You can optionally describe the
1071    location and length of the data with offset and length parameters.
1072    These are normally specified as a character offset (i.e., 0
1073    identifies the first character of the segment) and character length.
1074    When you also give -lines, they are specified as a line offset and
1075    line count.  If you give no offset, 0 is assumed.  If you give no
1076    length and offset, the entire segment is used.
1077 -string STR, -str STR
1078    specifies an output string that can have a leading hyphen.
1079 
1080 
1081 Notes: The string argument and -segment are mutually exclusive.  If
1082 you supply a string, the contents of the string are output to the I/O
1083 switch.  If you supply -segment, the data is taken from the segment
1084 specified by path, at the offset and length given.
1085 
1086 The current record must have been defined by a preceding read_record,
1087 seek_key, or position operation as follows:
1088 read_record
1089    the current record is the last record read.
1090 seek_key
1091    the current record is the record with the specified key.
1092 position
1093    the current record is the one preceding the record to which the file
1094    was positioned.
1095 
1096 
1097 :Info: io.seek_key:  1985-04-02  io seek_key operation
1098 
1099 Syntax as a command:  io seek_key switchname key
1100 
1101 
1102 Syntax as an active function:  [io seek_key switchname key]
1103 
1104 
1105 Function: positions the indexed file to which the I/O switch is
1106 attached to the record with the given key.  The record's length is
1107 printed on user_output.  Trailing blanks in the key are ignored.  The
1108 active function returns true if the key exists, false otherwise.
1109 
1110 
1111 Arguments:
1112 seek_key
1113    the operation being performed.
1114 switchname
1115    is the name of the I/O switch through which the operation is
1116    performed.
1117 key
1118    is a string of no more than 256 ASCII characters.  The null string
1119    ("") is allowed as a key.
1120 
1121 
1122 Notes: If the file does not contain a record with the specified key,
1123 it becomes the key for insertion.  A following write_record operation
1124 adds a record with this key.
1125 
1126 
1127 :Info: io.test_mode:  1985-04-02  io test_mode operation
1128 
1129 Syntax as a command:  io test_mode switchname mode
1130 
1131 
1132 Syntax as an active function:  [io test_mode switchname mode]
1133 
1134 
1135 Function: performs a modes operation and prints or returns true if
1136 mode appears in the mode string, false if ^mode appears.
1137 
1138 
1139 Arguments:
1140 test_mode
1141    the operation being performed.
1142 switchname
1143    is the name of the I/O switch through which the operation is
1144    performed.
1145 
1146 
1147 :Info: io.valid_mode:  1985-04-02  io valid_mode operation
1148 
1149 Syntax as a command:  io valid_mode switchname mode
1150 
1151 
1152 Syntax as an active function:  [io valid_mode switchname mode]
1153 
1154 
1155 Function: performs a modes operation and prints or returns true if
1156 either mode or ^mode appears in the mode string, false otherwise.
1157 
1158 
1159 Arguments:
1160 valid_mode
1161    the operation being performed.
1162 switchname
1163    is the name of the I/O switch through which the operation is
1164    performed.
1165 
1166 
1167 :Info: io.valid_op:  2020-06-14  io valid_op operation
1168 
1169 Syntax as a command:  io valid_op switchname operation
1170 
1171 
1172 Syntax as an active function:  [io valid_op switchname operation]
1173 
1174 
1175 Function: prints or returns true if the operation is defined on the
1176 switch.
1177 
1178 
1179 Arguments:
1180 valid_op
1181    the operation being performed.
1182 switchname
1183    is the name of the I/O switch through which the operation is
1184    performed.
1185 
1186 
1187 List of known operations:
1188    The following operations are defined for iox_ I/O modules.
1189 close
1190 close_file
1191 control
1192 delete_record
1193 destroy_iocb
1194 detach_iocb
1195 find_iocb
1196 get_chars
1197 get_line
1198 look_iocb
1199 modes
1200 move_attach
1201 open
1202 
1203 
1204 open_file
1205 position
1206 put_chars
1207 read_key
1208 read_length
1209 read_record
1210 rewrite_record
1211 seek_key
1212 write_record
1213 
1214 
1215 :Info: io.write_record: io.write:  1986-08-06  io write_record operation
1216 
1217 Syntax as a command:  io write switchname {string} {-control_args}
1218 
1219 
1220 Function: adds a record to the file to which the I/O switch is
1221 attached.  If the string parameter is specified, the record is equal to
1222 the string.  If the -segment control argument is specified, the record
1223 is extracted from the segment as described under the put_chars
1224 operation.  If the file is a sequential file, the record is added at
1225 the end of the file.  If the file is an indexed file, the record's key
1226 must have been defined by a preceding seek_key operation.
1227 
1228 
1229 Arguments:
1230 write_record, write
1231    the operation being performed.
1232 switchname
1233    is the name of the I/O switch through which the operation is
1234    performed.
1235 string
1236    is any character string.
1237 
1238 
1239 Control arguments:
1240 -allow_newline, -alnl
1241    does not add to nor delete from the end of the line any newline
1242    character.  (Default, when you select -segment)
1243 -append_newline, -apnl
1244    adds a newline character to the end of the line if one is not
1245    present.
1246 -lines
1247    specifies that the offset and length operands of -segment are
1248    measured in lines rather than in characters.  This control argument
1249    has meaning only if you also supply -segment.
1250 -no_quote, -nq
1251    returns the data unquoted.  (Active function usage only)
1252 
1253 
1254 -remove_newline, -rmnl
1255    deletes the newline character, if present, from the end of the
1256    line.  (Default if you give no -segment)
1257 -segment path {{offset} length}, -sm path {{offset} length}
1258    specifies that the data for the output operation is to be found in
1259    the segment specified by path.  You can optionally describe the
1260    location and length of the data with offset and length parameters.
1261    These are normally specified as a character offset (i.e., 0
1262    identifies the first character of the segment) and character length.
1263    When you also give -lines, they are specified as a line offset and
1264    line count.  If you give no offset, 0 is assumed.  If you give no
1265    length and offset, the entire segment is used.
1266 -string STR, -str STR
1267    specifies an output string that can have a leading hyphen.
1268 
1269 
1270 Notes: The string argument and -segment are mutually exclusive.  If
1271 you supply a string, the contents of the string are output to the I/O
1272 switch.  If you supply -segment, the data is taken from the segment
1273 specified by path, at the offset and length given.
1274 
1275 If the file is sequential, the record is added at the end of the file.
1276 If the file is indexed, the record's key must have been defined by a
1277 preceding seek_key operation.
1278 
1279 
1280 :hcom:
1281 
1282 
1283 
1284 /****^  HISTORY COMMENTS:
1285   1) change(2020-06-14,GDixon), approve(2021-02-22,MCR10088),
1286      audit(2021-05-27,Swenson), install(2021-05-27,MR12.6g-0056):
1287       1) Convert file to the Operation Format defined by the verify_info
1288          command.
1289                                                    END HISTORY COMMENTS */
1290 
1291 
1292