oracular (3) rwarray.3am.gz

Provided by: gawk_5.2.1-2build3_amd64 bug

NAME

       writea, reada, writeall, readall - write and read gawk arrays to/from files

SYNOPSIS

       @load "rwarray"

       ret = writea(file, array)
       ret = reada(file, array)
       ret = writeall(file)
       ret = readall(file)

DESCRIPTION

       The rwarray extension adds functions named writea(), reada(), writeall(), and readall(), as follows.

       writea()
              This  function takes a string argument, which is the name of the file to which dump the array, and
              the array itself as the  second  argument.   writea()  understands  multidimensional  arrays.   It
              returns one on success, or zero upon failure.

       reada()
              is  the  inverse  of writea(); it reads the file named as its first argument, filling in the array
              named as the second argument. It clears the array first.  Here too, the return  value  is  one  on
              success and zero upon failure.

       writeall()
              This  function  takes  a string argument, which is the name of the file to which dump the state of
              all variables. Calling this function is completely equivalent to calling writea() with the  second
              argument equal to SYMTAB.  It returns one on success, or zero upon failure.

       readall()
              This  function  takes  a  string  argument,  which  is the name of the file from which to read the
              contents of various global variables.  For each variable in the file, the data  is  loaded  unless
              the  variable  already  exists.  If the variable already exists, the data for that variable in the
              file is ignored.  It returns one on success, or zero upon failure.

NOTES

       The array created by reada() is identical to that written by writea() in the sense that the contents  are
       the  same.  However,  due to implementation issues, the array traversal order of the recreated array will
       likely be different from that of the original array.  As array traversal  order  in  AWK  is  by  default
       undefined,  this  is not (technically) a problem.  If you need to guarantee a particular traversal order,
       use the array sorting features in gawk to do so.

       The file contains binary data.  All integral values are written in network byte order.   However,  double
       precision  floating-point  values are written as native binary data.  Thus, arrays containing only string
       data can theoretically be dumped on systems with one byte order and restored on systems with a  different
       one, but this has not been tried.

EXAMPLE

       @load "rwarray"
       ...
       ret = writea("arraydump.bin", array)
       ...
       ret = reada("arraydump.bin", array)
       ...
       ret = writeall("globalstate.bin")
       ...
       ret = readall("globalstate.bin")

SEE ALSO

       GAWK:  Effective  AWK  Programming,  filefuncs(3am),  fnmatch(3am), fork(3am), inplace(3am), ordchr(3am),
       readdir(3am), readfile(3am), revoutput(3am), time(3am).

AUTHOR

       Arnold Robbins, arnold@skeeve.com.

COPYING PERMISSIONS

       Copyright © 2012, 2013, 2018, 2022 Free Software Foundation, Inc.

       Permission is granted to make and distribute verbatim copies of this manual page provided  the  copyright
       notice and this permission notice are preserved on all copies.

       Permission  is  granted to copy and distribute modified versions of this manual page under the conditions
       for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a
       permission notice identical to this one.

       Permission  is  granted  to  copy  and distribute translations of this manual page into another language,
       under the above conditions for modified versions, except that this permission notice may be stated  in  a
       translation approved by the Foundation.