Scratching my head here. fread() really appears to be the standard C idea of an fread(), so it returns a count. Instead, it returns 0. The buf[] does indeed have the expected content, but I'd like to understand what's up before just changing my code to assume 0 is a success value?
(Linux, ldc2 seen on versions 1.40.0 and 1.41.0)
Thanks,
Andy
import core.stdc.stdio : fopen, fread, fclose;
import std.string : toStringz;
void main(string[] argv) {
import std.stdio : writeln;
foreach(a; argv[1 .. $]) {
auto f = fopen(a.toStringz(), "r".ptr);
ubyte[1024] buf;
auto res = fread(&buf[0], buf.length, 1, f);
writeln(res, ": ", buf);
f.fclose();
}
}