Coprocesses and Sockets
gawk allows you to open a
two-way pipe to another process, called a
coprocess. This is done with the |&
operator used with getline
and print
or printf
.
print database command
|& "db_server"
"db_server" |& getline response
If the command used with |&
is a filename beginning with
/inet/
, gawk opens a TCP/IP connection. The
filename should be of the following form:
/inet/protocol
/lport
/hostname
/rport
The parts of the filename are:
- protocol
One of
tcp
,udp
, orraw
, for TCP, UDP, or raw IP sockets, respectively. Note:raw
is currently reserved but unsupported.- lport
The local TCP or UPD port number to use. Use
0
to let the operating system pick a port.- hostname
The name or IP address of the remote host to connect to.
- rport
The port (application) on the remote host to connect to. A service name (e.g.,
tftp
) is looked up using the Cgetservbyname()
function.
Get Unix in a Nutshell, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.