Adding strndup(3) to libc viable/useful?
Max Laier
max at love2party.net
Thu Dec 4 11:54:43 PST 2008
On Thursday 04 December 2008 20:27:01 Peter Wemm wrote:
> On Thu, Dec 4, 2008 at 10:44 AM, Xin LI <delphij at delphij.net> wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hi, Florian,
> >
> > Florian Smeets wrote:
> >> Hi,
> >>
> >> first of all i hope arch is the correct place to discuss this.
> >>
> >> While porting an application to FreeBSD i found that FreeBSDs libc does
> >> not have strndup. NetBSD added this about 2 years ago. A port of this to
> >> FreeBSD was very easy.
> >>
> >> There are 13 ports in the ports tree right now that patch in strndup via
> >> a patch in the files/ dir, well actually 12 bring there own version of
> >> strndup and one replaces it with a call to malloc/strncpy.
> >>
> >> Would it make sense to add this to our libc? A patch which does this is
> >> available here at http://webmail.solomo.de/~flo/strndup.patch
> >>
> >> I don't know if there is such a thing as minimum number of ports to
> >> require a function so that it can be added to the base system...
> >>
> >> Any feedback appreciated.
> >
> > I think whether or not to add it really depends on how popular it is :)
> > We included strdup() because it is a very common extension.
> >
> > Your patch looks fine but perhaps it would be a good idea to explicitly
> > mention that this is not a commonly implemented GNU extension
> > (inheritedly, this could reduce portability).
>
> glibc has had this for a long time and the trend for this function
> seems to be gaining ground. I think solaris is the last remaining
> major holdout.
>
> str*() namespace belongs to the implementation (us).
>
> There are lots of places where I've seen strndup() implemented as
> compatability shims. Everything from Asterisk to Varnish. I wouldn't
> be suprised if there were ports that had this knowledge hard coded.
>
> FWIW, there are a bunch of other useful utility str*() and mem*()
> functions that glibc has that we do not.
strnvis! (from OpenBSD)
> I've run into the lack of fmemopen() in the past. I found an
> implementation from rwatson.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
More information about the freebsd-arch
mailing list