PKOPEN(3)PKOPEN(3)NAME
pkopen, pkclose, pkread, pkwrite, pkfail - packet driver simulator
SYNOPSIS
char *pkopen(fd)pkclose(ptr)
char *ptr;
pkread(ptr, buffer, count)
char *ptr, *buffer;
pkwrite(ptr, buffer, count)
char *ptr, *buffer;
pkfail()DESCRIPTION
These routines are a user-level implementation of the full-duplex end-
to-end communication protocol described in pk(4). If fd is a file
descriptor open for reading and writing, pkopen carries out the initial
synchronization and returns an identifying pointer. The pointer is
used as the first parameter to pkread, pkwrite, and pkclose.
Pkread, pkwrite and pkclose behave analogously to read, write and
close(2). However, a write of zero bytes is meaningful and will pro‐
duce a corresponding read of zero bytes.
SEE ALSOpk(4), pkon(2)DIAGNOSTICS
Pkfail is called upon persistent breakdown of communication. Pkfail
must be supplied by the user.
Pkopen returns a null (0) pointer if packet protocol can not be estab‐
lished.
Pkread returns -1 on end of file, 0 in correspondence with a 0-length
write.
BUGS
This simulation of pk(4) leaves something to be desired in needing spe‐
cial read and write routines, and in not being inheritable across calls
of exec(2). Its prime use is on systems that lack pk.
These functions use alarm(2); simultaneous use of alarm for other
puposes may cause trouble.
deprecated PKOPEN(3)