On Thursday, 29 January 2015 at 14:40:32 UTC, CodeSun wrote:
        writeln(cast(string)buf);

Casting to string is often a mistake, here it might be the problem because you didn't check for the zero terminator, so the writeln prints all the garbage at the end of the buffer too.

I'd try something like

char[128] buf = 0; // initialize it all to zeroes

// fill it here with the function

printf("%s\n", buf.ptr); // display with printf which respects 0

and see what happens, if that works, the problem is just converting from C string back to D string, which you can do with to!string(buf.ptr) or another slicing method which is more efficient if you search for the zero yourself.

Reply via email to