man(1) Manual page archive


     PKOPEN(3)                 (deprecated)                  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 mean-
          ingful and will produce a corresponding read of zero bytes.

     SEE ALSO
          pk(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 established.

          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 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.