Thread overview
File append limit?
Aug 05, 2011
Joshua Niehus
Aug 05, 2011
Kagamin
Aug 05, 2011
Dmitry Olshansky
August 05, 2011
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


August 05, 2011
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'));
}
August 05, 2011
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