[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::digital_unix

Title:DIGITAL UNIX(FORMERLY KNOWN AS DEC OSF/1)
Notice:Welcome to the Digital UNIX Conference
Moderator:SMURF::DENHAM
Created:Thu Mar 16 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:10068
Total number of notes:35879

8894.0. "POSIX real-time constants missing" by RDGENG::WOOD_J ([email protected]) Wed Feb 19 1997 12:46

    I'm reading a book titled 
    
    	"POSIX.4: Programming for the Real World"
    
    	by B Gallmeister, pub. OReilly&Assoc
    
    The book implies that there should be a constant named AIO_LISTIO_MAX
    in <limits.h>, which is the maximum number of operations you can supply
    in one call to lio_listio.
    
    On my D/UNIX v4.0 system, a grep for AIO_LISTIO_MAX in /usr/include/*.h
    shows _SC_LISTIO_AIO_MAX in <unistd.h>.
    
    The difference is generic: the book implies there should also be other
    constants like MQ_OPEN_MAX and _POSIX_MQ_OPEN_MAX, but all I can find
    on Digital UNIX is _SC_MQ_OPEN_MAX.
    
    
    I guess there's 3 possibilities:
    1) I've mis-read the book (-maybe these constants are optional)
    2) the book's wrong
    3) digital UNIX is deficient
    
    Any thoughts as tp which one it is?
    
    Thanks,
      John
T.RTitleUserPersonal
Name
DateLines
8894.1SMURF::DENHAMDigital UNIX KernelWed Feb 19 1997 13:1522
    You've taken the book to literally. When you include <limits.h>
    in your application, those values you cite should be made available
    (with the correct setting of _POSIX_C_SOURCE or _POSIX_4SOURCE, BTW).
    
    But the standard doesn't say that you must personally find the
    values in <limits.h>. That header file is free to include other
    headers that may in fact contain the required definitions. This
    happens all over the place.
    
    In your case, the values you seek are in <sys/rt_limits.h>, which is
    indeed included by <limits.h>.  What search method have you used to
    locate the missing symbols?
    
    You'll note that even <limits.h> doesn't "really" exist as a file.
    It's simply a symbolic link to the real file <sys/limits.h>.
    
    Little is as it appears in header file land.
    
    Another note -- the Gallmeister book is based on a draft of POSIX
    1003.1b (which he calls by its old name 1003.4). It doesn't precisely
    or completely reflect the contents of the official standard. But
    it's close enough for most purposes.