GNU Info

Info Node: (gawk.info)Getline/Coprocess

(gawk.info)Getline/Coprocess


Next: Getline/Variable/Coprocess Prev: Getline/Variable/Pipe Up: Getline
Enter node , (file) or (file)node

Using `getline' from a Coprocess
--------------------------------

   Input into `getline' from a pipe is a one-way operation.  The
command that is started with `COMMAND | getline' only sends data _to_
your `awk' program.

   On occasion, you might want to send data to another program for
processing and then read the results back.  `gawk' allows you start a
"coprocess", with which two-way communications are possible.  This is
done with the `|&' operator.  Typically, you write data to the
coprocess first, and then read results back, as shown in the following:

     print "SOME QUERY" |& "db_server"
     "db_server" |& getline

which sends a query to `db_server' and then reads the results.

   The values of `NR' and `FNR' are not changed, because the main input
stream is not used.  However, the record is split into fields in the
normal manner, thus changing the values of `$0', the other fields, and
of `NF'.

   Coprocesses are an advanced feature. They are discussed here only
because this is the minor node on `getline'.  Note: Two-Way
Communications with Another Process, where coprocesses are
discussed in more detail.


automatically generated by info2www version 1.2.2.9