Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.perl.misc > #8745

Re: the fastest way to create a directory

From Rainer Weikusat <rweikusat@mssgmbh.com>
Newsgroups comp.lang.perl.misc
Subject Re: the fastest way to create a directory
Date 2013-07-17 22:31 +0100
Message-ID <87oba0yiu5.fsf@sapphire.mobileactivedefense.com> (permalink)
References <ks0l7j$9j4$1@news.ntua.gr> <kbaeba-dfc1.ln1@anubis.morrow.me.uk> <slrnkubflf.ef9.hjp-usenet3@hrunkner.hjp.at> <87mwplo6sj.fsf@sapphire.mobileactivedefense.com> <ks71fk$2rgk$1@news.ntua.gr>

Show all headers | View raw


"George Mpouras"
<nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam>
writes:
> your code is not good. It ALWAYS access the hard disk as many times as
> the number of upper dirs .

Believe it or not but I understand how this algorithm works because I
wrote it. Anything like this depends heavily on what the expected
situation happens to be. Eg, if I run your code with an argument of
/tmp/a/b/c/d/e, assuming nothing except /tmp exists initially, it will
do the following system calls:

stat("/tmp/a/b/c/d/e", 0x602130)        = -1 ENOENT (No such file or directory)
stat("/tmp/a/b/c/d", 0x602130)          = -1 ENOENT (No such file or directory)
stat("/tmp/a/b/c", 0x602130)            = -1 ENOENT (No such file or directory)
stat("/tmp/a/b", 0x602130)              = -1 ENOENT (No such file or directory)
stat("/tmp/a", 0x602130)                = -1 ENOENT (No such file or directory)
stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=94208, ...}) = 0
mkdir("/tmp/a", 0777)                   = 0
mkdir("/tmp/a/b", 0777)                 = 0
mkdir("/tmp/a/b/c", 0777)               = 0
mkdir("/tmp/a/b/c/d", 0777)             = 0
mkdir("/tmp/a/b/c/d/e", 0777)           = 0

OTOH, the mkdir_p I posted will just do

mkdir("/tmp", 0777)                     = -1 EEXIST (File exists)
mkdir("/tmp/a", 0777)                   = 0
mkdir("/tmp/a/b", 0777)                 = 0
mkdir("/tmp/a/b/c", 0777)               = 0
mkdir("/tmp/a/b/c/d", 0777)             = 0
mkdir("/tmp/a/b/c/d/e", 0777)           = 0

Back to comp.lang.perl.misc | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

the fastest way to create a directory George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-15 14:09 +0300
  Re: the fastest way to create a directory Henry Law <news@lawshouse.org> - 2013-07-15 15:44 +0100
    Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-15 18:45 +0300
      Re: the fastest way to create a directory Charlton Wilbur <cwilbur@chromatico.net> - 2013-07-15 15:36 -0400
        Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-16 00:07 +0300
      Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-15 23:55 +0200
  Re: the fastest way to create a directory tmcd@panix.com (Tim McDaniel) - 2013-07-15 20:27 +0000
    Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-16 00:04 +0300
      Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-16 00:02 +0200
        Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-18 00:16 +0300
      Re: the fastest way to create a directory tmcd@panix.com (Tim McDaniel) - 2013-07-15 22:16 +0000
      Re: the fastest way to create a directory Charlton Wilbur <cwilbur@chromatico.net> - 2013-07-18 15:49 -0400
        Re: the fastest way to create a directory Henry Law <news@lawshouse.org> - 2013-07-18 21:47 +0100
          Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-19 15:25 +0200
            Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-19 14:51 +0100
            Re: the fastest way to create a directory Keith Keller <kkeller-usenet@wombat.san-francisco.ca.us> - 2013-07-19 08:39 -0700
          Re: the fastest way to create a directory Charlton Wilbur <cwilbur@chromatico.net> - 2013-07-21 23:19 -0400
            Re: the fastest way to create a directory Henry Law <news@lawshouse.org> - 2013-07-22 07:10 +0100
              Re: the fastest way to create a directory Charlton Wilbur <cwilbur@chromatico.net> - 2013-07-22 17:31 -0400
        Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-19 16:40 +0100
  Re: the fastest way to create a directory Ben Morrow <ben@morrow.me.uk> - 2013-07-15 23:40 +0100
    Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-16 23:44 +0200
      Re: the fastest way to create a directory George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-17 11:09 +0300
        Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-17 10:24 +0200
      Re: the fastest way to create a directory George Mpouras <nospam.gravitalsun.noadsplease@hotmail.noads.com> - 2013-07-17 11:10 +0300
      Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-17 10:49 +0100
        Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-17 22:37 +0200
          Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-17 22:22 +0100
          Re: the fastest way to create a directory Ben Morrow <ben@morrow.me.uk> - 2013-07-19 16:21 +0100
            Re: the fastest way to create a directory "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2013-07-19 22:11 +0200
        Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-18 00:14 +0300
          Re: the fastest way to create a directory tmcd@panix.com (Tim McDaniel) - 2013-07-17 21:21 +0000
          Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-17 22:31 +0100
            Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-19 00:02 +0300
              Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-19 10:46 +0100
                Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-19 10:51 +0100
                Re: the fastest way to create a directory Rainer Weikusat <rweikusat@mssgmbh.com> - 2013-07-19 12:09 +0100
          Re: the fastest way to create a directory Keith Keller <kkeller-usenet@wombat.san-francisco.ca.us> - 2013-07-17 22:37 -0700
            Re: the fastest way to create a directory Justin C <justin.1303@purestblue.com> - 2013-07-18 09:15 +0100
  Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-19 01:01 +0300
    Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-19 01:07 +0300
  Re: the fastest way to create a directory "George Mpouras" <nospam.gravitalsun.antispam@spamno.hotmail.anispam.com.nospam> - 2013-07-23 09:33 +0300

csiph-web