From owner-freebsd-questions@FreeBSD.ORG Tue Feb 1 21:39:05 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DA47E16A4CF for ; Tue, 1 Feb 2005 21:39:05 +0000 (GMT) Received: from mail-relay4.mirrorimage.net (mail-relay4.mirrorimage.net [209.58.140.15]) by mx1.FreeBSD.org (Postfix) with ESMTP id 78EB843D46 for ; Tue, 1 Feb 2005 21:39:05 +0000 (GMT) (envelope-from FreeBSD@keyslapper.net) Received: from localhost (unknown [10.10.4.59]) by mail-relay4.mirrorimage.net (Postfix) with SMTP id 03D0569261 for ; Tue, 1 Feb 2005 16:39:04 -0500 (EST) Received: by localhost (sSMTP sendmail emulation); Tue, 1 Feb 2005 16:39:21 -0500 Date: Tue, 1 Feb 2005 16:39:21 -0500 From: Louis LeBlanc To: FreeBSD Questions Message-ID: <20050201213920.GE71726@keyslapper.net> Mail-Followup-To: FreeBSD Questions References: <20050201193507.GD71726@keyslapper.net> <200502011258.59704.reso3w83@verizon.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TYecfFk8j8mZq+dy" Content-Disposition: inline In-Reply-To: <200502011258.59704.reso3w83@verizon.net> X-PGP-Key: http://www.keyslapper.net/~leblanc/leblanc-at-keyslapper-net.asc User-Agent: Mutt/1.5.6i Subject: Re: library call for directory path creation? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: freebsd-questions@FreeBSD.org List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Feb 2005 21:39:06 -0000 --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--