PLIMOVE

PLIMOVE moves z storage units (bytes) from location y to location x, without any conversions, padding, or truncation.

Unlike the PLIOVER built-in subroutine, storage at locations x and y is assumed to be unique. If storage overlaps, unpredictable results can occur.

Read syntax diagramSkip visual syntax diagramPLIMOVE( x, y, z)
x and y
Expressions declared as POINTER or OFFSET. If the type is OFFSET, x or y must be declared with the AREA attribute.
z
Expression. It must have a computational type and is converted to type size_t.1

Example

  dcl 1 Str1,
        2 B  fixed bin(31),
        2 C  pointer,
        2 * union,
          3 D  char(4),
          3 E  fixed bin(31),
          3 *,
            4 * char(3),
            4 F fixed bin(8) unsigned,
        2 * char(0);
  dcl 1 Template nonasgn static,
        2 * fixed bin(31) init(200),
        2 * pointer init(sysnull()),
        2 * char(4) init(''),
        2 * char(0);

  call plimove(addr(Str1), addr(Template), stg(Str1));