Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Feb 2005 16:39:21 -0500
From:      Louis LeBlanc <FreeBSD@keyslapper.net>
To:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: library call for directory path creation?
Message-ID:  <20050201213920.GE71726@keyslapper.net>
In-Reply-To: <200502011258.59704.reso3w83@verizon.net>
References:  <20050201193507.GD71726@keyslapper.net> <200502011258.59704.reso3w83@verizon.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--TYecfFk8j8mZq+dy
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline

On 02/01/05 12:58 PM, Michael C. Shultz sat at the `puter and typed:
> On Tuesday 01 February 2005 11:35 am, Louis LeBlanc wrote:
> > I know there might be a better place for this question, but here
> > goes.
> >
> > I'm working on a utility that has to, among many other things, create
> > directory paths, often with a series of parent directories that may
> > not already exist.  Solaris has mkdirp(3GEN) in the libgen library,
> > but I can't find a library call that will do this in FreeBSD.  Kind
> > of like `mkdir -p` would.
> >
> > I know it would be pretty trivial to roll my own, and if I can't find
> > it I will.  I'm just curious if anyone knows of an *existing* library
> > call that would do this.
> >
> > TIA
> > Lou
> 
> Assuming your working in C what is wrong with:
> 
> char command[]	= "mkdir -p /path/to/whatever";
> 
> system( command );

Nothing, except that calling a system command from C when you can roll
your own method in about 18 lines of code is usually not ideal.
Particularly when speed is important.  And yes, it is definitely
important - disk access can be an insurmountable bottleneck for high
volume systems if it is neglected at the implemenation stage.

I only wanted a system lib call because I trust FreeBSDs implementation
to be faster than my quick throw together.

I've already written it.  It's not pretty, and probably not as fast as a
system lib would be (it has to make 1 system call per directory in the
path, rather than just one system call for the whole path).  It is,
however, much faster than a call to system() would be.

Thanks all the same

Lou
-- 
Louis LeBlanc                          FreeBSD-at-keyslapper-DOT-net
Fully Funded Hobbyist,                   KeySlapper Extrordinaire :)
This is a list only address, and the return address is a black hole!
Send off-list email to:                leblanc at keyslapper d.t net
Key fingerprint = C5E7 4762 F071 CE3B ED51  4FB8 AF85 A2FE 80C8 D9A2

Armadillo:
  To provide weapons to a Spanish pickle.

--TYecfFk8j8mZq+dy
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (FreeBSD)

iD8DBQFB//cIr4Wi/oDI2aIRAqdoAJ4lisx8NckM1iv/ijE85b3d0KvBnQCeMgN7
VwNf48id7j9Ng4mGg4AEblI=
=LZXI
-----END PGP SIGNATURE-----

--TYecfFk8j8mZq+dy--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050201213920.GE71726>