www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - File append limit?

reply Joshua Niehus <jm.niehus gmail.com> writes:
Hello,

I am running a script that creates a file which lists all the folders in a
directory:

    foreach (string name; dirEntries("/Users/josh/", SpanMode.shallow)) {
        append("/Users/dirList.txt", name ~ "\n");
    }

But it seems to stop appending after 255 lines (this particular folder has
350 folders in all).
When trying to read the created file:

   auto f = File("/Users/dirList.txt", "r");
   foreach (string line; lines(f)) {
       writeln(line);
   }
   f.close();

It writes out the lines, but after the last one I get "Bus error: 10"

Any thoughts on what im missing or doing wrong?

I am currently using D 2.054 on Mac OSX Lion
The script was working with D 2.053 on Mac OSX Snow Leopard

Thanks,
Josh
Aug 05 2011
next sibling parent Kagamin <spam here.lot> writes:
Joshua Niehus Wrote:

 Hello,
 
 I am running a script that creates a file which lists all the folders in a
 directory:
 
     foreach (string name; dirEntries("/Users/josh/", SpanMode.shallow)) {
         append("/Users/dirList.txt", name ~ "\n");
     }
 
 But it seems to stop appending after 255 lines (this particular folder has
 350 folders in all).
What if foreach(i;0..512) { append("/Users/dirList.txt", text("line ",i,'\n')); }
Aug 05 2011
prev sibling parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
On 05.08.2011 19:35, Joshua Niehus wrote:
 Hello,

 I am running a script that creates a file which lists all the folders 
 in a directory:
     foreach (string name; dirEntries("/Users/josh/", SpanMode.shallow)) {
         append("/Users/dirList.txt", name ~ "\n");
     }

 But it seems to stop appending after 255 lines (this particular folder 
 has 350 folders in all).
 When trying to read the created file:

    auto f = File("/Users/dirList.txt", "r");
    foreach (string line; lines(f)) {
        writeln(line);
    }
    f.close();

 It writes out the lines, but after the last one I get "Bus error: 10"

 Any thoughts on what im missing or doing wrong?
 I am currently using D 2.054 on Mac OSX Lion
 The script was working with D 2.053 on Mac OSX Snow Leopard

 Thanks,
 Josh
I'd suspect that it's a manifestation of a recently dsicovered (and fixed) bug with OSX Lion, more info here: https://github.com/D-Programming-Language/druntime/pull/42 At any rate it's going to be into the next release, other then waiting for it you can manually build latest dmd/druntime from github. -- Dmitry Olshansky
Aug 05 2011