Unix |
Unix v7 |
|
![]() |
pkopen(3) |
![]() |
pkopen, pkclose, pkread, pkwrite, pkfail − packet driver simulator
char *pkopen(fd)
pkclose(ptr)
char *ptr;
pkread(ptr,
buffer, count)
char *ptr, *buffer;
pkwrite(ptr,
buffer, count)
char *ptr, *buffer;
pkfail()
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 produce a corresponding read of zero bytes.
pk(4), pkon(2)
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 established.
Pkread returns −1 on end of file, 0 in correspondence with a 0-length write.
This simulation
of pk(4) leaves something to be desired in needing
special 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.
![]() |
pkopen(3) | ![]() |