Bart Smaalders writes:
> James Carlson wrote:
> 
> > The point is that having two is confusing, and of the two, 3XNET is
> > better for modern applications (i.e., those attempting to use socket
> > options), so I'd recommend it first.  The other one seems to have
> > little going for it but the well-known name and prestige location in
> > the man page search path.
> > 
> 
> So why are there two different libraries? Isn't the xnet
> functionality a proper superset of libsocket?

No, they're disjoint, as I noted before.

3XNET has ancillary data, 3SOCKET does not.  3SOCKET has the legacy r*
interfaces and *_r thread-safe functions, but 3XNET does not.  3XNET
includes the name service bits, but 3SOCKET does not.

(Except for name space purists, that last one might be a bit of a red
herring, though, as users of -lsocket almost always include -lnsl to
pick up the necessary name service functions.)

Most other platforms long ago did away with this distinction and just
make all of it available from libc.  And this means that quite a few
application writers these days _assume_ it's in libc everywhere, and
force Solaris users into excruciating 'make LDFLAGS="-lsocket -lnsl"'
experiments or (more likely) postings on various newsgroups asking why
xyz-1.23 doesn't compile on Solaris.

-- 
James Carlson, KISS Network                    <[EMAIL PROTECTED]>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to