Mac OS X Update for UNIX Systems Programming

References to Mac OS X in the book refer to version 10.2.

Version 10.2 did not support asynchronous I/O.
There is some support for asynchronous I/O in Mac OS X 10.3, although there do not seem to be man pages for the aio functions.

To compile the asynchronous I/O programs in Chapter 8 under Mac OS X 10.3, do not execute convertmac.
Instead, make the following changes:

  1. Remove the -lrt from the RTLIB line of the makefile.
    Just delete the characters after the =.
  2. The file aio.h is in /usr/include/sys instead of /usr/include.
    In the files asyncmonitorpoll.c and asyncmonitorsignal.c, replace the line:
        #include <aio.h>
    with
        #include <sys/aio.h>
  3. SIGRTMAX is not defined in signal.h.
    Insert the following three lines at the very beginning of the files asyncsignalmain.c and asyncsignalmainsuspend.c:
  4. In the Mac OS X 10.3 sys/signal.h file, the union sigval is not defined correctly.
    Add the following two lines to the very start of the file asyncmonitorsignal.c: