Date: Mon, 18 Jan 1999 08:35:58 +0000 (BST) From: "M.C. Vernon" <[EMAIL PROTECTED]>
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. Mark

