Re: Need help with netbase
Date: Mon, 18 Jan 1999 08:35:58 +0000 (BST)
From: "M.C. Vernon" <email@example.com>
Hmm. What headers + functions does hurd have? I assume ANSI. POSIX? and
some of it's own? Is this neatly documented anywhere?
Since the Hurd uses GNU libc we have ANSI (including almost everything
that's in the current draft for the new standard), POSIX (including
some stuff that is proposed to be added to the standard), most things
from BSD, SVID and X/Open (including what a lot of people call
Unix98). Almost everything is documented in the GNU C Library
Reference Manual. I guess there is a Debian libc-doc package that
contains the documentation.
If you want your program to be portable you have to stick to these
functions (probably restricting yourself to POSIX or ANSI).
There are also Hurd specific functions in libc. They are not yet
documented in the manual but there is a short description in the
header files (<hurd.h> and <hurd/*.h>). These functions include all
Hurd RPC's, for which the *.h files are automatically generated.
For those, have a look at the corresponding *.defs file.
There are also a lot of Mach functions in libc. You could find
information about these in books about Mach, but there are large
differences between different versions of Mach. The headers files are
<mach.h>, <mach_*.h> <mig_*.h> and <mach/*.h>.
Last, but not least, there are some libraries that come with the Hurd
servers itself. Their purpose is to make it easier to write Hurd
servers and other Hurd-specific programs. These headers are also in
<hurd/*.h> IIRC. They are supposed to be documentation in the Hurd
Interfaces Manual that comes with the source code, but there is not
much there yet. Gordon has written more documentation that will
hopefully be included in the near future.
As a general rule, never use any functions that have underscores
in front of their name (e.g. __open), even though their prototypes are
in the headers.